14. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.size() == 0)
return "";
if(strs.size() == 1)
return strs[0];
int strs_len = strs.size();
sort(strs.begin(), strs.end());
int len = 0;
for(int a = 0; a < strs[0].size(); a++){
if(strs[0][a] == strs[strs_len - 1][a]){
len++;
continue;
}else{
break;
}
}
return strs[0].substr(0,len);
}
};
解答:这个是看别人写的代码,我感觉好强。首先把容器中的单词排序然后得到一个有序的单词序列。
根据上面字符串比较大小,是根据每个字符串的字符逐一比较所以只用比较字典序最大的和最小的即可
(考虑strs为0的情况和strs为1的情况,如果为0和1的话后面的操作可能报错)