编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i]
如果非空,则仅由小写英文字母组成
python
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
m_length = len(strs)//统计有多少字符串
blank_s = ""//定义空串
if(blank_s in strs)://若有空串,则直接返回空串
return blank_s
if(m_length==1)://若只有一个字符串,则直接返回该字符串
return strs[0]
first_str = strs[0]//若有两个及以上非空字符串,则以第一个字符串为比较对象,其余为被比较对象
n_length = len(first_str)
target_str = ""//定义空字符串,方便后面将重复字符串依次拼接
for i in range(n_length):
cnt = 0//计数器
for j in range(1,m_length)://第二个开始比较
compared_str = strs[j]
k_length = len(compared_str)
if((i<k_length) and (first_str[i]==compared_str[i]))://下标超过被比较串,则截止
cnt += 1
if(cnt==(m_length-1)):
target_str = target_str + first_str[i]
else:
return target_str
return target_str