LeetCode刷题之“最长公共前缀“的python解法之一

2023-10-31

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

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

示例 1:

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

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

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

通过次数327,617提交次数849,694

class Solution:

    #求字符串数组中最短的字符串长度
    def shortest_str(self, strs):
        if len(strs) > 0:
            shortest_length = len(strs[0])
            for s in strs:
                now_length = len(s)
                if now_length < shortest_length:
                    shortest_length = now_length

            return shortest_length
        else:
            return 0


    def longestCommonPrefix(self, strs):
        #保存最短的字符串长度
        shortest_len = self.shortest_str(strs)
        #计算数组中字符串的个数
        str_list_len = len(strs)
        #保存公共前缀的字符
        longest_com_pre = []
        #循环对比对应位置上的字符是否相同,相同则保存,否则结束对比
        for j in range(shortest_len):
            flag = True
            for k in range(str_list_len-1):
                if strs[k+1][j] != strs[k][j]:
                        flag = False
                        break
            if flag:
                longest_com_pre.append(strs[0][j])
            else:
                break
        #如果没有公共前缀,则返回""
        if len(longest_com_pre) == 0:
            return ""
        else:
            return "".join(longest_com_pre)


sl = Solution()
r = sl.longestCommonPrefix(["aca","cba"])
print(r)

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LeetCode刷题之“最长公共前缀“的python解法之一 的相关文章

随机推荐

  • 136. Single Number

    class Solution public int singleNumber vector
  • 用border渐变色实现UI 标题头等高短竖线

    现在的UI 越来越喜欢给标题前面加上短竖线 大家通常的方法 一个是画div图形 用position 方式来定位 一个是用 伪类来给前面增加给元素 实现短竖线 今天在这里实现无dom 的第三种方式 border渐变色 废话不多说 用用到的有
  • 程序员视角m1 Macbook air使用指南和指令备忘录

    m1 Mac使用指南指令备忘录 硬件外设 外接显示器HiDpi homebrew 必备网站 软件推荐 Parallels Desktop Silicon Bob IINA iterm2远程 mysql和redis启动 OhMyZsh设置 磁
  • 1016 部分A+B (15 分)- PAT乙级真题

    题滴链接https pintia cn problem sets 994805260223102976 problems 994805306310115328 1016 部分A B 15 分 正整数 A 的 D A 为 1 位整数 部分 定
  • 实现分页展示

    当数据量较多时 用户需要拖动页面才可以浏览更多消息 分页显示的步骤 思路 确定每页显示的数据量 确定分页显示所需的总页面 编写SQL查询语句 实现数据查询 在JSP页面中进行分页显示设置 一 计算显示总页数 1 select count 1
  • ES6代码转为ES5代码的在线转换工具以及运行工具

    学习es6是一个很有意思的过程 里面新增的语法及语法糖都能大大减少我们的代码量 但有些语法是目前浏览器无法支持的 所以我们需要转换一下 为了方便学习以及测试 下面推荐两款使用的es6在线转换工具 1 Babeljs 在线转换地址 2 es6
  • 神经网络学习小记录70——Keras 使用Google Colab进行深度学习

    神经网络学习小记录70 Keras 使用Google Colab进行深度学习 注意事项 学习前言 什么是Google Colab Colab官网 利用Colab进行训练 一 数据集与预训练权重的上传 1 数据集的上传 2 预训练权重的上传
  • 在idea中如何在控制台输出日志?——用log4j

    简单记录下idea中如何配置使得在控制台输出日志 首先做个对比 输出日志和不输出日志有什么区别 下面的例子是我在学习mybatis中查询数据库时返回的结果 不输出日志的结果显示如下 输出日志的结果显示如下 经过对比 是不是在输出结果的同时把
  • java 语言 if else语句的使用方法

    if else语句的结果如下 if 条件1 代码块1 else if 条件2 代码块2 else 代码块3 if else语句使用方法 如果条件1是true则执行 代码块1 如果条件2是true则执行代码块2 否则执行代码块3 下面是例子
  • XXX项目总结

    目录 1 SQLite 数据库 1 1 创建数据库连接 1 2 打开数据库连接 1 3 关闭数据库连接 1 4 查询数据库示例 结果为单条数据 1 5 查询数据库示例2 结果为多条数据 2 数据转换 2 1 QString 转 std st
  • 单循环链表实现(设立尾指针)(第二章 P35)

    设立尾指针的单循环链表 单链的循环链表结点的存储结构和单链表的存储结构一样 所不同的是 最后一个结点的 next 域指向头结点 而不是 空 这样 由表尾很容易找到表头 但若链表较长 则由表头找到表尾较费时 因而 单循环链表往往设立尾指针而不
  • Redis实战

    Redis是目前非常主流的KV数据库 它因高性能的读写能力而著称 其实还有另外一个优势 就是Redis提供了更加丰富的数据类型 这使得Redis有着更加广泛的使用场景 那Redis提供给用户的有哪些数据类型呢 主要有 string 字符串
  • 在HBuilder中怎么创建Vue项目

    软件信息 HBuilder X 3 1 18 目录 1 新建Element UI项目 2 更改App vue内容 3 在src中创建router文件夹并新建index js文件 4 在src中创建components文件夹存放组件 5 在s
  • django model字段

    1 AutoField 一个自动递增的整型字段 添加记录时它会自动增长 你通常不需要直接使用这个字段 如果你不指定主键的话 系统会自动添加一个主键字段到你的model 2 BooleanField 布尔字段 管理工具里会自动将其描述为che
  • Python与数据分析--Matplotlib-1

    目录 1 Matplotlib库函数导入 2 简单尝试绘图 3 绘制多条折线图 4 绘制多种颜色风格曲线 5 图片内容文本操作实例 6 图例设置实例 7 坐标轴设置实例 1 Matplotlib库函数导入 导入matplotlib库 imp
  • dplyr:一套数据处理语法

    可能更多的人知道Hadley大神是因为他那大名鼎鼎的ggplot2 但dplyr包也不遑多让 作为一套数据处理与清洗的语法 dplyr包都是你玩转数据的必备武器 R在基础配置中进行数据处理无疑也是okay的 但总有懒人会想到要偷更多懒 于是
  • Demo产品模块

  • 对称加密算法(DES、3DES、AES)

    文章目录 DES 3DES AES DES DES加密算法因现代的计算能力 已经被淘汰掉了 因为现在在24小时内就可以被破解 特点 分组加密算法 明文以64位分组 64位明文输入 64位密文输出 对称算法 加密和解密使用同一密钥 有效密钥长
  • servlet 3.0使用和原理

    目录 Servlet 3 0 起步 Servlet 3 0 异步 SPI原理分析 使用SPI手写Servlet 3 0 Servlet 3 0 起步 Servlet 3 0新增了若干注解 用于简化Servlet 过滤器和监听器的声明 使得w
  • LeetCode刷题之“最长公共前缀“的python解法之一

    最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀 如果不存在公共前缀 返回空字符串 示例 1 输入 flower flow flight 输出 fl 示例 2 输入 dog racecar car 输出 解释 输入不存在公共前缀