如下,我正在解 leetcode 第14题 找数组的最长公共前缀。
想法是先排序,找出最短的值,
然后循环最短值的长度次,然后再循环数组,对比最短值的索引和数组内其他值的索引是否相同.
不同就跳出循环返回最长公共前缀
不懂的是这里为什么会在未超索引的情况下显示 超索引呢?
代码如下
class Solution(object):
def longestCommonPrefix(self, strs):
strs.sort(key = len)
if len(strs) >= 2:
z = strs[0]
for i in range(len(z)):
for s in strs[1:]:
if z[i] != s[i]:
z = z[0:i]
break
else:
print(z[i], s[i], s, i, z)
return z if z else ''
elif len(strs) == 1:
return strs[0]
else:
return ''
s = Solution()
print(s.longestCommonPrefix(["flower","flow","flight"]))
报错如下:
f f flower 0 flow
f f flight 0 flow
l l flower 1 flow
l l fligh