返回顶部
首页 > 资讯 > 后端开发 > Python >python(leetcode)-14最
  • 568
分享到

python(leetcode)-14最

pythonleetcode 2023-01-30 23:01:32 568人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racec

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

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

示例 1:

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

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

所有输入只包含小写字母 a-z 。

 这题比较好理解,给定一个列表,查询列表中的公共前缀

自己的想法是直接暴力法解决,将列表的第一个值作为对比值,通过一层for循环不断遍历对比值与其他元素是否相等,如果相等则继续对比,如果不等return比较过的值。

上代码(40ms)击败12%用户

 1 class Solution(object):
 2     def longestCommonPrefix(self, strs):
 3         """
 4         :type strs: List[str]
 5         :rtype: str
 6         """
 7         sig=True
 8         i=0
 9         if(strs==[] ):  #判断是否为空
10             return ""
11         if(len(strs)==1): #判断是否只有一个值
12             return strs[0]
13         if ("" in strs): #判断有没有空值
14             return ""
15         while(sig==True ):    #sig是一个bool类型值 True继续判断 False中断返回
16             if(len(strs[0])<=i): #判断对比值是否越界
17                 return strs[0][0:i]
18             temp=strs[0][i]   #第i个字符
19             for j in strs[1:]:
20                 if(temp!=j[i] ): #如果第i字符不匹配 则返回前i-1个字符
21                     return strs[0][0:i]
22                 elif(temp==j[i] and len(j)==i+1): #如果第i字符为最后一个一字母,则不继续对比,返回前i个
23                      sig=False
24                      k=i
25             i += 1
26         return strs[0][0:k+1]
27 if __name__=="__main__":
28     s=Solution()
29     li=["flower","flo","flight"]
30     print(s.longestCommonPrefix(li))

看了评论区大佬的代码,觉得有一个想法特别好

上代码(28ms)击败94%

 1 class Solution(object):
 2     def longestCommonPrefix(self, strs):
 3         """
 4         :type strs: List[str]
 5         :rtype: str
 6         """
 7         if not strs: return ""
 8         if len(strs) == 1: return strs[0]
 9 
10         strs.sort()
11         p = ''
12         for x, y in zip(strs[0], strs[-1]):
13             if x == y:
14                 p += x
15             else:
16                 break
17         return p
18 if __name__=="__main__":
19     s=Solution()
20     li=["flower","fl","flight"]
21     print(s.longestCommonPrefix(li))

解释一下:

前两句没啥好说的,判断特殊情况

然后进行排序,直接将第一个元素和最后一个元素对比,提取出相同字符。

特点:排序后的列表,不需要对比中间的元素 直接对比最后两个即可。

--结束END--

本文标题: python(leetcode)-14最

本文链接: https://lsjlt.com/news/181230.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python(leetcode)-14最
    编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racec...
    99+
    2023-01-30
    python leetcode
  • C++实现LeetCode(14.最长共同前缀)
    [LeetCode] 14. Longest Common Prefix 最长共同前缀 Write a function to find the longest common pre...
    99+
    2024-04-02
  • #14 Python模块
    前言 前面的文章中,有许多地方都用到了Python的模块,这个到底是个什么神奇的东西呢?让我们来一起盘它! 一、什么是模块 在前几节中,我们已经接触了一些模块:math、random、time等,它们为什么是模块,什么是模块呢? 其实模块...
    99+
    2023-01-30
    模块 Python
  • LeetCode 中最常使用的 Python 库是什么?
    随着算法竞赛的火热,越来越多的人开始使用 LeetCode 来提升自己的编程能力。在使用 LeetCode 过程中,我们常常需要使用一些 Python 库来帮助我们实现算法。那么,LeetCode 中最常使用的 Python 库是什么呢?...
    99+
    2023-08-14
    响应 leetcode apache
  • 【Python】剑指offer 14:剪
    题目:给你一根长度为n的绳子,请把绳子剪成m段 (m和n都是整数,n>1并且m>1)每段绳子的长度记为k[0],k[1],…,k[m].请问k[0]k[1]…*k[m]可能的最大乘积是多少?例如,当绳子的长度为8时,我们把它剪...
    99+
    2023-01-31
    剑指 Python offer
  • python高级-模块(14)
    一、python中的模块 有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt函数,必须用语句#include <math.h>引入math.h这个头文件,否则是无法正常进行调用的。 那么在Python中,如果要引用一些...
    99+
    2023-01-31
    模块 高级 python
  • Python学习14:如何把Python
    练习中有一个很无聊的问题:如何把Python代码写成一行? print "How can i write python in a line \n"; print "You can use ';' follow the sentence. "...
    99+
    2023-01-31
    Python
  • 最新虚拟机VMware 14安装教程
    先给大家献上VMware 14 激活码 FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA CV7T2-6WY5Q-48EWP-ZXY7X-QGUWD CG54H-D8D0...
    99+
    2024-04-02
  • Python 是响应 LeetCode 热潮的最佳选择吗?
    随着互联网和科技的不断发展,程序员成为了当今社会最受欢迎的职业之一。而针对程序员的面试和招聘过程中,LeetCode 的题目已经成为了一种标准化的测试方式。然而,对于那些想要参与 LeetCode 挑战的程序员来说,选择一种合适的编程语言...
    99+
    2023-08-14
    响应 leetcode apache
  • python(leetcode)-283
    给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少...
    99+
    2023-01-30
    python leetcode
  • python(leetcode)-344
    编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII...
    99+
    2023-01-30
    python leetcode
  • C++实现LeetCode(155.最小栈)
    [LeetCode] 155. Min Stack 最小栈 Design a stack that supports push, pop, top, and retrieving t...
    99+
    2024-04-02
  • 【2023-12-14】 最新瑞幸咖啡小程序-blackbox
    需要联系主页V 瑞幸咖啡小程序 登入需要过同盾滑块下单需要balckbox参数 测试 下单 过滑块 登入发短信 加密参数 来源地址:https://blog.csdn.net/qq_260799...
    99+
    2023-12-23
    小程序
  • python(leetcode)-1.两
    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums ...
    99+
    2023-01-30
    python leetcode
  • python(leetcode)-66加
    给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,2,3] 输出: ...
    99+
    2023-01-30
    python leetcode
  • [PYTHON] 核心编程笔记(14.P
    在python中有多种运行外部程序的方法,比如,运行操作系统命令或另外的python脚本,或执行一个磁盘上的文件,或通过网络来运行文件在特定执行场景包括:在当前脚本继续运行创建和管理子进程执行外部命令或程序执行需要输入的命令通过网络来调用命...
    99+
    2023-01-31
    核心 笔记 PYTHON
  • Python标准库14 数据库 (sqlite3)
    Python自带一个轻量级的关系型数据库SQLite。这一数据库使用SQL语言。SQLite作为后端数据库,可以搭配Python建网站,或者制作有数据存储需求的工具。SQLite还在其它领域有广泛的应用,比如HTML5和移动端。Python...
    99+
    2023-06-02
  • C++实现LeetCode(85.最大矩形)
    [LeetCode] 85. Maximal Rectangle 最大矩形 Given a 2D binary matrix filled with 0's and 1's, fin...
    99+
    2024-04-02
  • 14 个Python小游戏 源码分享
    目录1、吃金币2、打乒乓3、滑雪4、并夕夕版飞机大战5、打地鼠6、小恐龙7、消消乐8、俄罗斯方块9、贪吃蛇10、24点小游戏11、平衡木12、外星人入侵13、贪心鸟14、井字棋888...
    99+
    2024-04-02
  • python基础学习14----正则表达
    正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 在python中正则表达式被封装到了re模块,通过引入re模块来使用...
    99+
    2023-01-30
    正则 基础 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作