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;
}
};