编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入:strs = ["flower","flow","flight"] 输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
1.当字符串数组为空时,返回“”
2.当不为空时,通过最小值最大值函数将所有字符串进行按位比较,即取出两个包含公共前缀,但是公共前缀后一位字母分别为最小和最大的两个字符串选择出来,然后进行比较,将公共前缀输出。例如,"flower","flow","flight"进行比较“fl”都是相等的,比较“o”和“i”,“o”大,则"flower"为最大值,"flight"为最小值。
代码示例:
class Solution(object):
def longestCommonPrefix(self, strs):
#当字符数组为空的时候
if len(strs) == 0:
return ""
#字符数组不为空
#取出最小字符串和最大字符串
a = min(strs)
b = max(strs)
#将两个字符串逐位比较,返回相同前缀
for i in range(len(a)):
if a[i] != b[i]:
return a[:i]
#如果a为两者共同前缀,则直接返回a
return a
运行示例:
s = Solution()
print(s.longestCommonPrefix(["flower","flow","flight"]))