力扣练习第八天——最长公共前缀
题目大致如下:
查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串’’’’。
示例一:
输入:[“flower”,“flow”,“flight”]
输出:“fl”
示例二:
输入:[“dog”,“racecar”,“car”]
输出:’’"
链接来源于LeetCode:https://leetcode-cn.com/problems/longest-common-prefix/
大致思路:
利用短板效应,找到最短的字符串,然后循环查找对比其他的字符串,一旦有不相同点则立刻返回’’’’。如果有相同的,则保留最短相同字段。
代码大致如下:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string r = "";
if(strs.empty()) return r;
string min = strs[0];
for(int i = 1; i < strs.size(); ++ i){
if(strs[i].size() < min.size())
min = strs[i];
}
for(int j = 0; j < min.size(); ++ j){
for(int m = 0; m < strs.size(); ++m)
{if(min[j] != strs[m][j])
return r;
}
r = r + min[j];
}
return r;
}
};
结果大致如下: