Write a function to find the longest common prefix string amongst an array of strings.
AC方法:
class Solution(object): def longestCommonPrefix(self, strs): common_prefix = '' if not strs else strs[0] for v in strs: if v == '': return '' for i, vi in enumerate(v): if i < len(common_prefix) and vi == common_prefix[i]: continue else: i -= 1 break common_prefix = common_prefix[:i + 1]; return common_prefix
既然是用的Python,有更为优雅和高效的方法:
class Solution(object): # version for python, faster and elegant def longestCommonPrefix(self, strs): zip_strs, prefix = zip(*strs), '' for v in zip_strs: if len(set(v)) > 1: break prefix += v[0] return prefix
核心就是zip和set函数,详细用法可查api。