描述

思路:拿每个字符串和第一个字符串相比,不相等时(或字符位数超出其他字符串长度)返回前面的字符。
注意要考虑空数组和仅仅只有一个字符串的情况
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs: return ""
for i in range(len(strs[0])):
for j in strs[1:]:
if i>=len(j) or j[i]!=strs[0][i]:
return strs[0][:i]
return strs[0]
求公共字符时,python提供了一种更好的方案,set()。可以使用zip结合优化。其中set()创建一个无序不重复元素集,zip表示将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。zip(*)表示多为数组打包。
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
s = ""
for i in zip(*strs):
if len(set(i)) == 1:
s = s+i[0]
else:
break
return s
网友评论