zoukankan      html  css  js  c++  java
  • 4.Leetcode14 LongestCommon Prefix 笔记

    1:题目描述

    Write a function to find the longest common prefix string amongst an array of strings.

    找出字符串数组中最长的公共前缀

    2:题目分析

    先设定第一个字符串为最长前缀,依次向后比较,将‘最长前缀’一点点截取。但题目比较坑的地方是没说能输入空字符串,所以在测试之后又要加上考虑空字符串这种情况,否则会提示IndexError

    3:解题过程

     1 class Solution(object):
     2     def longestCommonPrefix(self, strs):
     3         """
     4         :type strs: List[str]
     5         :rtype: str
     6         """
     7         strs_len=len(strs)#获得列表长度
     8         if "" in strs or strs_len==0 :#踢出空列表
     9             return ""
    10         elif strs_len==1:#假如只有一个元素就不要比较了
    11             return strs[0]
    12         else:
    13             i=0
    14             temp_str=strs[0] #设置‘最长前缀’为第一个
    15             temp_len=len(strs[0])#获取字符串长度
    16             while i<strs_len:#遍历列表
    17                 j=0
    18                 MIN=min(temp_len,len(strs[i]))#设置MIN,防止检索时忽略‘最长前缀’比当前字符串长的情况
    19                 while j<MIN:
    20                     temp_str=temp_str[:MIN]
    21                     if strs[i][j]!=temp_str[j]:
    22                         temp_str=strs[i][:j]#截取字符串
    23                         break
    24                     j=j+1
    25                 temp_len=len(temp_str)#这个地方看似不大重要,但因为之前我把他放在了上面的循环中,ε=(´ο`*)))唉
    26                 i=i+1
    27             if len(temp_str)==0:#判断前缀是否为空
    28                 return ""
    29             else:
    30                 return temp_str

    4:解题感悟

    ①python的确有很多方便的内置函数,但不能因此总想走捷径

    ②如果发现肉眼看不出的错误,就老老实实的去插入断点,节省感情

  • 相关阅读:
    领导力包括哪些能力?如何提升领导力?
    管理者如何让员工服从?
    常用查询语句
    BZOJ2190 SDOI2008 仪仗队 gcd,欧拉函数
    使用python来操作redis用法详解
    int指令
    浏览器打开exe文件
    feiQ发送信息
    【转】Notepad++ 中文查找(中文搜索)问题解决方法
    【转】Java基本概念:集合类 List/Set/Map...的区别
  • 原文地址:https://www.cnblogs.com/19991201xiao/p/8400297.html
Copyright © 2011-2022 走看看