14. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在最长公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"] 输出: "fl"
示例 2:
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在最长公共前缀。
说明:
所有输入只包含小写字母 a-z
。
您是否在真实的面试环节中遇到过这道题目呢?
我的答案:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.empty()){return "";}
vector<int>::iterator it;
bool endFlag = false;
string resStr = "";
string tmpStr = "";
string tmpStrComp = "";
int i=0;
while(!endFlag)
{
vector<string>::iterator it = strs.begin();
tmpStr = *it;
if(tmpStr.size() && (i <= tmpStr.size()-1))
{
tmpStr = tmpStr.substr(i,1);
}
else
{
return tmpStr;
}
it++;
while( it != strs.end())
{
tmpStrComp = *it;
if(tmpStrComp.size() && (i <= tmpStrComp.size()-1))
{
tmpStrComp = tmpStrComp.substr(i,1);
}
else
{
return tmpStrComp;
}
if(tmpStr != tmpStrComp){endFlag=true;break;}
it++;
}
if(!endFlag){resStr += tmpStr;}
i++;
}
return resStr;
}
};
提交记录
117 / 117 个通过测试用例 | 状态:
通过 |
执行用时:8 ms |
我的提交执行用时
已经战胜 74.85 % 的 cpp 提交记录