1.题目
Write a function to find the longest common prefix string amongst an array of strings.
给一个字符串的数组,求这些字符串的最长公共前缀
2.分析
数组A中有字符串s1,s2,..sn
所有的字符串si都与第一个字符串s1横向比较。
对于位置j=0,
如果所有字符串该位置上的字符si[j]=s1[j],那么把s1[j]加入公共前缀,j++
如果si[j]!=s1[j]或者某个字符串到了末尾,那就输出此时的前缀。
3.代码
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string prefix = "";
if (strs.size() == 0)
return "";
int j = 0;
while (j < strs[0].size()) {
for (int i = 1; i < strs.size(); i++) {
if (j >= strs[i].size() || strs[i][j] != strs[0][j])
return prefix;
}
prefix.push_back(strs[0][j]);
++j;
}
return prefix;
}
};
本文介绍了一种寻找多个字符串中最长公共前缀的有效算法。通过将每个字符串与第一个字符串逐字符对比,逐步构建最长公共前缀。代码实现简洁且易于理解。
182

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



