给定一个字符串列表,输出列表中所有字符串的最长公共前缀子串,如果没有公共前缀子串,返回""
例:
输入:["flower", "flow", "flight"]
返回:“fl”
输入:["dog", "racecar", "car"]
返回 : ""
解法1
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return ''
MinLen = sorted(map(len, strs))[0]
result = []
for i in range(MinLen):
temp = [v[i] for v in strs]
if temp[1:] == temp[:-1]:
result.append(temp[0])
else:
break
return ''.join(result)
利用列表的切片操作,判断列表中的值是否都相等
解法2
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
result = ''
for v in zip(*strs):
if len(set(v)) == 1:
result += v[0]
else:
break
return result
利用内建对象 zip,set