编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。
示例 1:
- 输入:strs = ["flower","flow","flight"]
- 输出:"fl"
示例 2:
- 输入:strs = ["dog","racecar","car"]
- 输出:""
- 解释:输入不存在公共前缀。
思路
先找到最短的单词,确定最长前缀的最大长度。
再挨个搜索每个单词,形成答案即可。
答案
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string ret;
if(strs.empty())
return ret;
int size=strs[0].size();
for(string s:strs)
if(s.size()<size)
size=s.size();
for(int i=0;i<size;i++) {
char ch=strs[0][i];
for(string s:strs) {
if(s[i]!=ch)
return ret;
}
ret+=ch;
}
return ret;
}
};