最长公共前缀
字符串数组 ,每一个元素为一个字符串 字符串通过下标的形式来得到字符 因此 这个字符串数组看作为一个二维数组 strs
要找最长公共前缀 可以 以第一个字符串为标 将该字符串与其他字符串进行比较 用循环 将 strs[0][j] 与 strs[I][j] 进行比较 这里的 i其他字符串的下标
因此这里需要两层循环嵌套 第一层是 j,表示 二维数组列数的变化 第二层里的 i 表示 字符串下标的变化
定义一个bool 若比较结果相同 那么继续循环 若出现不同 则 让bool=false 且跳出i循环
最开始 初始化 s="" 表示最长公共前缀 ,最开始为空 在跳出i的循环之后 判断bool的值 若等于true 如果第一层循环里的i全部通过 那么 s+=strs[0][j]; 若等于false 结束循环且返回 s
以下是AC代码
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
bool flag =true;
string s ="";
if(strs.size()==0) return s;
for(int j = 0;j<strs[0].size();j++){
for(int i = 1 ;i<strs.size();i++){
if(strs[0][j]!=strs[i][j])
{
flag =false;
break;
}
}
if(flag)
s+=strs[0][j];
else
break;
}
return s;
}
};
|