【题目】
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
【思路】
循环遍历每个字符串第i个字符是否存在以及是否相等即可。
【代码】
python版本
class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
if len(strs) == :
return ''
i =
while i < len(strs[]):
tmp = strs[][i]
flag = False
# 判断每个字符串的第i个位置是否有元素,有的话是否相等
for s in strs[:]:
if len(s) <= i or tmp != s[i]:
flag = True
break
if flag:
break
i +=
return strs[][:i]
C++版本
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.size() == )
return "";
int i = ;
char c;
bool flag;
while(i < strs[].size()){
c = strs[][i];
flag = false;
// 判断所有字符串第i个位置是否有字符,有的话是否相等
for(auto s: strs){
if(s.size() <= i || s[i] != c){
flag = true;
break;
}
}
if(flag)
break;
i++;
}
string res = strs[].substr(, i);
return res;
}
};