• 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")
    
  • 相关阅读:
    关于Unicode的小理解
    大数据高并发学习笔记(3)
    大数据高并发学习笔记(2)
    .net阻止XSS攻击方法
    VUE-百度地图添加覆盖物及信息窗口添加导航功能
    第34章:高级全局API钩取 : IE连接控制
    第2章:动态调试技术--OllyDbg
    第33章:隐藏进程-API代码修改技术(下)
    第33章:隐藏进程-API代码修改技术(中)
    第1章:基础知识
  • 原文地址:https://www.cnblogs.com/warcraft/p/9390338.html
Copyright © 2020-2023  润新知