题目:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] 仅由小写英文字母组成
思路:本道题是leetcode上面的一道简单题,尽管你没有学过数据结构,也大概有一个很清晰的思路,就是暴力解法,通过比较所有元素的第一个、第二个字母,直到发现有元素字符不相同后停止遍历,然后前面遍历过的元素就是需要返回的字符串。
完整代码:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string str="";
int min_=200;
for(int i=0;i<strs.size();i++)
{
int len=strs[i].length();
min_=min(min_,len);
}
for(int j=0;j<min_;j++)
{
char s=strs[0][j];
int pos=0;
for(int i=0;i<strs.size();i++)
{
if(s!=strs[i][j])
{
pos=pos+1;
}
}
if(pos==0)
{
str=str+s;
}
else //cir、car 特例
{
break;
}
}
return str;
}
};
如果发现所有元素的当前字符不相同时,需要break掉这个for()防止cia、car这些特例。