14. Longest Common Prefix

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。

posted @ 2016-02-21 19:49  水果拼盘武士G  阅读(127)  评论(0编辑  收藏  举报