Longest Common Prefix
这个题解法很多,但个人觉得最优秀也最合理的两种解法就是滚动比对和垂直比对,所谓滚动比对即先拿前两个字符串比对找出他们的前缀在拿这个前缀去跟第三个比对一路滚动下去,有点map reduce的思路在里面,另外就是垂直比对,即对每个字符的同一位进行比对,知道字符不相等或者到达某个字符串的长度为止,个人比较习惯垂直比对这种做法,需要注意第一个字符串是空的情况
class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
res = ''
cur = 0
n = len(strs)
while True:
if cur >= len(strs[0][0]):
return res
tmp = strs[0][cur]
for i in xrange(1, n):
if cur >= len(strs[i]):
return res
if tmp != strs[i][cur]:
return res
res += tmp
return res