• LeetCode 14. Longest Common Prefix


    最长公共前缀

    看起来很简单 >,>

    first submission
    class Solution:
        def longestCommonPrefix(self, strs):
            """
            :type strs: List[str]
            :rtype: str
            """
            logestPrefix=''
            lenList=[len(s) for s in strs]
            mixLen=min(lenList)
    
            strLen=len(strs)
    
            for i in range(mixLen):
                cList=[s[i] for s in strs]
                if cList.count(cList[0])==strLen:
                    logestPrefix+=cList[0]
    
            return logestPrefix
    

    Runtime Error

    Runtime Error Message:
    Line 9: ValueError: min() arg is an empty sequence
    Last executed input:
    []
    

    Wrong Answer

    Input:
    ["aca","cba"]
    Output:
    "a"
    Expected:
    ""
    

    一是lenList为空不能用min()函数,
    二是遇到不相同则break

    小改之后AC

    完整代码
    import time
    
    class Solution:
        def longestCommonPrefix(self, strs):
            """
            :type strs: List[str]
            :rtype: str
            """
            logestPrefix=''
            lenList=[len(s) for s in strs]
            
            mixLen=min(lenList) if len(lenList)>0 else 0  
    
            strLen=len(strs)
    
            for i in range(mixLen):
                cList=[s[i] for s in strs]
                if cList.count(cList[0])==strLen:
                    logestPrefix+=cList[0]
                else:
                    break
    
            return logestPrefix
    
    if __name__ == "__main__":
        
        data = [
            {
                "input":["flower","flow","flight"],
                "output":"fl"
            },
            {
                "input":["dog","racecar","car"],
                "output":""
            },
            {
                "input":[],
                "output":""
            },
            {
                "input":["aca","cba"],
                "output":""
            }
     
        ];
        for d in data:
            
            print(d['input'])
            
            # 计算运行时间
            start = time.perf_counter()
            result=Solution().longestCommonPrefix(d['input'])
            end = time.perf_counter()
            
            print(result)
            if result==d['output']:
                print("--- ok ---> spend time: ",end-start)
            else:
                print("--- error ---> spend time: ",end-start)
                break
            
            print()
        else:
            print("success")
    
  • 相关阅读:
    vmware12中安装MAC OS X 10.10
    AOL search
    [python]错误检测及异常处理try-except
    [推荐]
    [python]打开文件操作open用法
    MAC使用小技巧
    [推荐]
    [python]python中的if, while, for
    [python]python字典
    [python]python列表、元组
  • 原文地址:https://www.cnblogs.com/warcraft/p/9390338.html
Copyright © 2020-2023  润新知