题目简述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入:strs = [“dog”,“racecar”,“car”]
输出:""
解释:输入不存在公共前缀。
示例 2:
输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”
提示
0 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] 仅由小写英文字母组成
题目分析
这是一道比较简单的一目了然型题目,比较简单的做法就是纵向比较,先取第一个单词的首字母,然后和所有单词的首字母进行比较,如果都一样就取第一个单词的第二个字母,以此类推,直到找到不一样的字母。代码如下:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.size()<=0)return "";
if(strs.size()==1)return strs[0];
if(strs[0].size()==0)return "";
for(int right=0;;right++){
char x=strs[0][right];
for(int i=0;i<strs.size();i++){
if(strs[i].empty())return "";
if(x!=strs[i][right])return strs[0].substr(0,right);
if(strs[i].size()==right)return strs[i];
}
}
}
};