题目链接:
题目描述:
找出所有字符串的最长公共前缀。
题目分析:
两个字符串的最长公共前缀,肯定不能超过其中短的字符串的长度。比较两个字符串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);
}
};

本文介绍了一种解决LeetCode上最长公共前缀问题的有效算法。通过逐个比较字符串来确定所有输入字符串的最长共同起始部分。此方法简单易懂,适合初学者学习。
271

被折叠的 条评论
为什么被折叠?



