题目链接:
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
题目:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串
""
。示例 1:
输入:strs = ["flower","flow","flight"] 输出:"fl"示例 2:
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i]
仅由小写英文字母组成
个人思路:
定义一个sring类型变量s,将题给出的第一个字符串作为对照数据(当第一字符串个与第二字符串个全部不一样则无公共部分,在内循环中字符串中的字符遍历长度以s.size()的长度为基准);用双循环,外循环遍历字符串,内循环遍历字符串中的字符,当内循环数据判断不相等时利用s.erase()将索引 当前字符及往后的字符全部删除,并跳出内循环,并判当前s是否为空,若为空则直接返回字符串。
代码:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string s=strs[0];int Ii=0,Ij=0;
for(Ii=1;Ii<strs.size();Ii++){
for(Ij=0;Ij<s.size();Ij++){
if(s[Ij]!=strs[Ii][Ij]){s.erase(Ij);break;}
}
if(s=="")break;
}
return s;
}
};