题目
思路:
把数组里的字符串进行纵向对比。str[j][i]
中,j
表示第几个字符串,从0开始;i
表示字符串的第几个位置,从0开始。从第0位开始,将第一个字符串的值strs[0][i]
分别与后两个字符串对应位置的值strs[j][i]
进行对比,若相等,则继续;直到不等,则返回第一个字符串中从0到当前i所指向的值strs[0][0:i]
解法:
def longestCommonPrefix(strs):
"""
:type strs: List[str]
:rtype: str
"""
if len(strs) == 0: #判断字符串是否空
return ''
for i in range(len(strs[0])): #从头遍历第一个字符串,c存储当前字符串的值
c = strs[0][i]
#j从第二个字符串开始遍历,对比不同字符串的相同位置的值与第一个字符串是否相等
for j in range(1,len(strs)):
if i == len(strs[j]) or strs[j][i] != c:
return strs[0][0:i]
return strs[0]
print(longestCommonPrefix(["flower","flow","flight"]))