描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
思路
这题咋一看很简单,确实也很简单,但是不注意的话就会犯很多错误,所以每个地方每种情况都要想通。
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.empty())return "";
int p=0;
while(p<strs[0].size()){//正常返回的就是公共前缀的长度
int flag=1;
char c=strs[0][p];
for(int i=1;i<strs.size();i++){
if(p>=strs[i].size()||strs[i][p]!=c){
flag=0;
break;
}
}
if(!flag)break;
p++;
}
return strs[0].substr(0,p);
}
};