最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ““。
思路
暴力比较,两层for循环依次比较每一个字符串的每个字符
代码
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.size()==0)
{
return "";
}
int shortest=INT_MAX;
for(int i=0;i<strs.size();i++){
if(strs[i].length()<shortest){
shortest=strs[i].length();
}
}
vector<int> array(shortest);
for(int i=0;i<shortest;i++){
for(int j=0;j<strs.size();j++){
if(strs[j][i]!=strs[0][i]){
array[i]=1;
i=shortest;
j=strs.size();
}
}
}
int i=0;
for(;i<shortest;i++){
if(array[i]!=0){
break;
}
}
return strs[0].substr(0,i);
}
};
执行用时:8 ms, 在所有 C++ 提交中击败了28.37%的用户
内存消耗:9 MB, 在所有 C++ 提交中击败了52.17%的用户
通过测试用例:124 / 124