zoukankan      html  css  js  c++  java
  • LeetCode 14. 最长公共前缀

    题目:


    编写一个函数来查找字符串数组中的最长公共前缀。

    如果不存在公共前缀,返回空字符串 ""。

    示例 1:

    输入: ["flower","flow","flight"]
    输出: "fl"
    示例 2:

    输入: ["dog","racecar","car"]
    输出: ""
    解释: 输入不存在公共前缀。


    思路:

    既然是找公共,为了减少遍历次数,首先选择去找数组中长度最小的str,然后列出str的排列情况去遍历数组中的str是否包含,包含则记录,否则return,有两种方法。

    方法一:

    先找到 strs 中的最小长度 str ,然后检查str 中的每一个字符是否在每一个 strs 项中,在就累加,如果不在,返回当前值

    class Solution(object):
        def longestCommonPrefix(self, strs):
            """
            :type strs: List[str]
            :rtype: str
            """
            if len(strs)==0:return ''
            s=''
            str=strs[0]
            for key in strs: #找到最小长度项
                if len(key) < len(str):
                    str = key
            for i in range(len(str)): 
                for j in range(len(strs)): #判断各项对应str位置是否相等,相等才累加
                    if str[i]!=strs[j][i]:
                        return s
                s=s+str[i] 
            return s
    

    执行用时 :20 ms, 在所有 Python 提交中击败了83.89%的用户

    内存消耗 :12.7 MB, 在所有 Python 提交中击败了5.88%的用户

    方法二:

    class Solution(object):
        def longestCommonPrefix(self, strs):
            """
            :type strs: List[str]
            :rtype: str
            """
            if len(strs)==0:return ''
            str=strs[0]
            for key in strs: #找到最小长度项
                if len(key) < len(str):
                    str = key
            for i in range(len(strs)): 
                while (strs[i].find(str) !=0):#检查数组中字符串是否包含当前str,并且index要为0->意思是数组字符串从str开始(公共),不是则shift 一位继续查找,直到找到最大位符合的str
                    str=str[:-1]
            return str
    

    执行用时 :16 ms, 在所有 Python 提交中击败了94.60%的用户

    内存消耗 :12.8 MB, 在所有 Python 提交中击败了5.88%的用户

  • 相关阅读:
    如何将一棵树转化成二叉树
    雪碧图的使用
    CSS简介,引入方式,文字和文本样式设置
    表格Table和表单元素
    html 中< col>标签和< colgroup>标签的区别
    Emmet的HTML语法(敲代码的快捷方式)
    抖音风格字体效果
    几种有效减小电脑系统盘使用量的方法
    ubuntu 机器名称修改方法
    Ubuntu 为基于X应用程序增加启动项的正确做法
  • 原文地址:https://www.cnblogs.com/xiaoqiangink/p/12982303.html
Copyright © 2011-2022 走看看