题目大意:给出一组字符串,求出改组字符串中的最长公共前缀。
算法思想:
1.判断字符串的个数如果个数为0返回空,为1返回仅存在的字符串。
2.遍历容器找出容器中字符串最小的长度。
3.按最小规模遍历容器中首个字符串将其每个字符与其他字符串的相应字符比较如果都相同则加入结果字符串中,如果存在不同则终止遍历。
4,返回最长公共前缀字符串。
代码如下:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string res;
if(strs.size()==0) return res;
if(strs.size()==1) return strs[0];
int minSize=INT_MAX;
for(int i=0;i<strs.size();++i){
minSize=min(minSize,(int)strs[i].length());
}
for(int i=0;i<minSize;++i){
char c=strs[0][i];
int j;
for(j=0;j<strs.size();++j){
if(strs[j][i]!=c)
break;
}
if(j==strs.size()) res+=c;
else break;
}
return res;
}
};