最长公共前缀C++
题目介绍
.编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”
示例 2:
输入:strs = [“dog”,“racecar”,“car”]
输出:""
解释:输入不存在公共前缀。
提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] 仅由小写英文字母组成
作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/array-and-string/ceda1/
来源:力扣(LeetCode)
解法
拿第一个字符串作为标准,停止比较的标准:其他字符串长度超过第一个字符串或者有不同的字符出现。在每一轮比较结束后在目标字符串尾加正确字符,用到append。
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string ans;
if(strs.empty())
return ans;
for(int i=0;i<strs[0].size();i++)
{
for(int j=1;j<strs.size();j++)
{
if(i>strs[j].size()-1||strs[j][i]!=strs[0][i])
return ans;
}
ans.append(1,strs[0][i]);
}
return ans;
}
};