题目

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

示例1:

1
2
输入: ["flower","flow","flight"]
输出: "fl"

示例2:

1
2
3
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

说明

所有输入只包含小写字母a-z。

思路

只需要将字符串数组进行排序,找到第一个字符串与最后一个字符串,比较他们公共部分即可。

code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string tmp="";
if(strs.size()==0){//空字符串,需要提前判断。
return tmp;
}
sort(strs.begin(),strs.end());
for(int i=0;i<strs[0].length()&&i<strs[strs.size()-1].length();i++){
if(strs[strs.size()-1][i]==strs[0][i]){
tmp+=strs[0][i];
}else{
break;
}
}
return tmp;
}
};