leetcode14. 最长公共前缀

这篇具有很好参考价值的文章主要介绍了leetcode14. 最长公共前缀。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

如果不存在公共前缀,返回空字符串 “”。
leetcode14. 最长公共前缀,leetcode刷题,python,leetcode
解题方法:
1.首先找到数组中长度最短的数据,与数组第一个数进行交换(公共前缀的长度肯定不会大于列表中长度最短的字符串)
2.接着 因为求最长公共前缀,将数组第一个数据依次与剩余的数据进行前n个数的比较,不相等,则比较前n-1个字符是否相等

代码:

class Solution(object):
    def longestCommonPrefix(self, strs):
        """
        :type strs: List[str]
        :rtype: str
        """
        s1= len(strs)
        if s1 == 0:
            return ""
        else:
            s2 = strs[0]
            t = 0
            count = len(s2)
            #获取列表字符串长度最短的数据
            for i in range(1,s1):
                if len(strs[i])<count:
                    t = i
                    count = len(strs[i])
            #最短字符串与数组第一个数进行交换,方便后续比较
            strs[0],strs[t] = strs[t],strs[0]
            #找出最长公共前缀,以数组第一个数长度为比较次数
            for i in range(count):
                count1 = 1
                #依次与数组剩余数据进行比较
                for j in range(1,s1):
                    if strs[0][:count-i] == strs[j][:count-i]:
                        count1+=1
                if count1 == s1:
                    return strs[0][:count-i]
            return ""        

ps:可以去掉else,去掉之后记得缩进 (因为是之前写的题,更改要缩进比较麻烦,就不处理了)文章来源地址https://www.toymoban.com/news/detail-810433.html

到了这里,关于leetcode14. 最长公共前缀的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LeetCode刷题 | 1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和

    给定两个字符串  text1  和  text2 ,返回这两个字符串的最长  公共子序列  的长度。如果不存在  公共子序列  ,返回  0  。 一个字符串的  子序列   是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后

    2024年02月12日
    浏览(43)
  • C++面试宝典第19题:最长公共前缀

    题目         编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串\\\"\\\"。说明:所有输入只包含小写字母a-z。         示例1:         示例2: 解析         最长公共前缀(Longest Common Prefix)是计算机科学中一个常见的问题,它

    2024年01月19日
    浏览(33)
  • 探秘力扣之谜:如何轻松解决最长公共前缀问题?

    本篇博客我会讲解力扣中的“14. 最长公共前缀”这道题,这是题目链接。 先来审题: 以下是几个输出示例: 提示: 这道题的思路其实并不难,也是一些字符串的常规操作的结合。大家可以先思考一下,再来听我讲解。 思路是这样的:外层循环遍历第一个字符串的每一个字

    2024年02月03日
    浏览(53)
  • Leetcode1143. 最长公共子序列

    解题思路 求两个数组或者字符串的最长公共子序列问题,肯定是要用动态规划的。下面的题解并不难,你肯定能看懂。 首先,区分两个概念:子序列可以是不连续的;子数组(子字符串)需要是连续的; 另外,动态规划也是有套路的:单个数组或者字符串要用动态规划时,

    2024年01月25日
    浏览(44)
  • leetcode1143. 最长公共子序列-动态规划(java)

    leetcode1143. 最长公共子序列 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/longest-common-subsequence 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串: 它是由原字

    2024年01月19日
    浏览(43)
  • 刷题笔记之七(统计每个月兔子的总数+汽水瓶+查找两个字符串a,b中的最长公共子串+公共子串计算)

    目录 1. 数据库中,count不会返回null值,max和concat可能会返回null值 2. 数据库特点: 共享性高,冗余度小,安全性强,独立性强 3.  top是sql server中的,用于求前n条数据 4. 数据库使用函数进行全部扫描(数据遍历)最慢,并且函数执行本身也是需要耗时的 5.  使用%作为

    2023年04月09日
    浏览(43)
  • 【LeetCode】1143.最长公共子序列(闫氏dp可视化无分析)

      推荐一下这道题的可视化过程 最长公共子序列 - 动态规划 Lngest Common Subsequence - Dynamic Programming_哔哩哔哩_bilibili  

    2024年02月15日
    浏览(44)
  • 【LeetCode刷题】最长回文子串

    📝个人主页:爱吃炫迈 💌系列专栏:数据结构与算法 🧑‍💻座右铭:道阻且长,行则将至💗 题目:最长回文子串 思路一:暴力 枚举每一个子串,找回文串,然后通过比较,找出最长的回文串。 会超时 学习更多的JavaScript字符串方法,例如上面代码中用到的 split() , joi

    2023年04月23日
    浏览(60)
  • LeetCode 刷题 3. 无重复字符的最长子串

    给定一个字符串s,找出其中不包含重复字符的最长子串。 示例 1: 示例 2: 示例 3: 提示: 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/longest-substring-without-repeating-characters 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 LeetCode官方详细解答

    2024年02月10日
    浏览(50)
  • 【刷题之路】LeetCode 2389. 和有限的最长子序列

    原题连接: 2389. 和有限的最长子序列 题目描述: 给你一个长度为 n 的整数数组 nums ,和一个长度为 m 的整数数组 queries 。 返回一个长度为 m 的数组 answer ,其中 answer[i] 是 nums 中 元素之和小于等于 queries[i] 的 子序列 的 最大 长度 。 子序列 是由一个数组删除某些元素(也可

    2023年04月16日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包