You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
codeLibB01/01思维/最长公共前缀.py

33 lines
1.3 KiB

8 months ago
'''
最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀如果不存在公共前缀返回空字符串 ""示例 1输入["flower","flow","flight"] 输出"fl"
示例 2输入: ["dog","racecar","car"] 输出""
说明所有输入只包含小写字母 a-z
'''
class Solution(object):
def longestCommonPrefix(self,strs):
"""
:type strs: List[str]
:rtype: str
"""
if len(strs) == 0: # 空字符串
return ""
i = 0 # 遍历第一个字符
j = 0 # 遍历字符串
end = 0 # 前缀结尾
while j < len(strs) and i < len(strs[j]):
if j == 0: # 以第一个字符作为基准
char = strs[j][i] # 取第一个字符的第i位
else:
if strs[j][i] != char: # 若其他字符第i位与第一个字符第i位不同终止
break
if j == len(strs) - 1: # 若运行到最后一个字符仍没有终止
i += 1 # 开始检查第i+1位
j = 0 # 回到第一个字符开始新一轮循环
end += 1 # 第i位加入前缀
else:
j += 1 # 吉布森第一个也不是最后一个字符,就到下一个字符
return strs[j][:end]