首页 > 其他 > 详细

14.最长公共前缀

时间:2019-08-21 15:49:49      阅读:55      评论:0      收藏:0      [点我收藏+]

方法一:

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        if not strs:
            return ""
        # 例子:strs = ["flower", "flow", "flight"]
        # strs[0] 指的是 "flower",以"flower"为基准
        for i in range(len(strs[0])):
            # 从第二个数开始于第一个数比较
            for string in strs[1:]:
                # 先看 string[i] != strs[0][i]:
                # 判断string[i]对应的字母是否与 基准对应的字母 相同
                # 如果不同就返回 基准 的前i个字母
                # i >= len(string):防止后面的字母长度比基准的长度短
                # "flow"的长度比"flower"短
                if i >= len(string) or string[i] != strs[0][i]:
                    return strs[0][:i]
        # 如果输入的是[""],输出的是 ""    
        return strs[0]

方法二:

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        result = ‘‘
        i = 0
        while True:
            try:
                # set()会去重复
                # strs = ["flower","flow","flight"]
                # i = 0时,sets中存放{‘f‘},判断stes长度为1,表明是公共字母
                # i = 2时,sets中存放{‘o‘,‘i‘},长度为2,表明没有公共字母
                sets = set(string[i] for string in strs)
                if len(sets) == 1:
                    result += sets.pop()
                    i += 1
                else:
                    break
            except Exception as e:
                break
        return result

 

14.最长公共前缀

原文:https://www.cnblogs.com/WJZheng/p/11389080.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!