题目链接:
题目描述:
找出所有字符串的最长公共前缀。
题目分析:
两个字符串的最长公共前缀,肯定不能超过其中短的字符串的长度。比较两个字符串1,2后找到了一个最长公共前缀长度为n,此时可以把前面的字符串2长度看成为n,再将字符串2与字符串3比较,再次找到一个新的最长公共前缀长度n_new,可以知道的是n_new<=n。当遍历到最后一个字符串时,我们要找的最长公共前缀也就找到了。
代码:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int row=strs.size();
if(row==0){
return "";
}
int longest=strs[0].size();
for(int i=1;i<row;i++){
int j=0;
while(j<longest && strs[i][j]==strs[i-1][j]){
j++;
}
longest=j;
}
return string(strs[row-1].begin(),strs[row-1].begin()+longest);
}
};