最长公共前缀
题目要求
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
解题思路
我采用了暴力解法,就是以第一个为起点,把它当作公共前缀,拿下一个和它比较,截取两者的公共前缀,再用新的公共前缀和后面的比,再更新再比较…以此类推。这种办法比较暴力,耗时长内存占用比较大,以后要是学到新解法再来更新吧。
代码
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int len = strs.size();
string ans;
if(len == 0){
ans = "";
return ans;
}
else{
ans = strs[0];
for(int j = 1; j < len; j++){
int k = 0;
for(k = 0; k < ans.length(); k++){
if(strs[j][k] != ans[k]){
break;
}
}
if(k == 0){
ans = "";
break;
}
else{
ans = strs[j].substr(0,k);
}
}
return ans;
}
}
};