C++描述 LeetCode 14. 最长公共前缀
大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博客 ,同时正在尝试在B站中做一些内容分享,B站主页为: 亓官劼的B站主页
本文原创为亓官劼,请大家支持原创,部分平台一直在恶意盗取博主的文章!!!
若需联系博主,可以联系本人微信:qiguanjie2015
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
提示:
0 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i]
仅由小写英文字母组成
解题思路
对所有字符串从开头位置同时遍历,如何不同,则直接返回,如果相同则继续遍历
算法实现
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string res = "";
int len = strs.size();
if(len == 0)
return res;
int slen = strs[0].size();
for(int i = 0; i < slen ; i++){
char tmp = strs[0][i];
for(auto& item:strs){
if((item[i] != tmp) || (item.length()-1 < i))
return res;
}
res = res + tmp;
}
return res;
}
};