思路
第一个for循环为了找出来数组里的字符串长度最小值,因为第一个字符串不一定是最长的。再通过两层for循环依次遍历每一个字母以及每一个字符串对应位置上的字母,用flag来判断是否是不相同,若不相同则可以直接退出。用res来接收每次成功的字符,最后只需要返回res即可。
代码
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string res="";
char c;
int k=0;
string one=strs[0];
int len=0;
int j;
for(j=0;j<strs.size();++j){
if(strs[j].size()>len)len=strs[j].size();
}
int flag;
for(j=0;j<len;++j){
flag=0;
c=one[j];
for(int i=1;i<strs.size();++i){
if(c!=strs[i][j]){
flag=1;
break;
}
}
if(flag==1)break;
res+=c;
}
return res;
}
};