题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例:
输入:strs = ["flower","flow","flight"] 输出:"fl"
题解
string longestCommonPrefix(vector<string>& strs) {
if(strs.size()==0){
return "";
}
string nowqian=strs[0];//设第一个字符串为最长前缀
int strnum=strs.size();
for(int i=1;i<strnum;i++){
int qianlen=0;
for(int j=0,k=0;j<nowqian.length(),k<strs[i].length();j++,k++){//用当前前缀与字符串比较
if(nowqian[j]!=strs[i][k]){//遇到不同字符说明这个字符不能作为前缀之一
break;
}
else{
qianlen++;//累计前缀长度
}
}
nowqian=nowqian.substr(0,qianlen);//获取最长前缀
}
return nowqian;
}