14.最长公共前缀
题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
解题思路
首先判断字符串是否为空,若为空则公共前缀为“ ”
若不为空,我们假设第一个字符串为公共前缀,遍历其他字符串是否与之相同,若不同,将我们假设的字符串长度减一,再进行判断。直到找出相同的字符,即公共前缀。
若减完所有长度都没有相同字符,则公共前缀为“ "
运行代码
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if (strs.size() == 0) return "";
string prefix = strs[0];
for (int i=1;i<strs.size();i++)
{
while (strs[i].find(prefix)!=0)
{
if (prefix == "") return "";
prefix = prefix.substr(0, prefix.length() - 1);
}
}
return prefix;
}
};