代码编织梦想

解法一:通过lcp方法对两个字符串查找相同部分

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        if not strs: #若无字符串则返回空
            return ""
        
        pre, count = strs[0], len(strs) #第一个字字符串 以及 strs个数
        for i in range(1, count): #遍历strs中除第一个之外的字符串
            pre = self.lcp(prefix, strs[i]) #调用 lcp函数
            if not pre: #pre ==None时 退出循环 进入下一步 return prefix
                break
        return pre
        
    def lcp(self, str1, str2):
        length, index = min(len(str1), len(str2)), 0
        while index < length and str1[index] == str2[index]: #一个一个比对过去 不等则退出 返回strs中上一个index的位置
            index += 1
        return str1[:index]

解法二:遍历每个字符串同一位置,相同则记住位置,不同则返回之前的相同的位置

class Solution:
def longestCommonPrefix(self, strs) -> str:
    if strs == None:
        return ''
    n = len(strs[0])
    first = strs[0]
    for i in range(n):
    	# 当所有字符串等长 或者 遇到不相等时 直接返回
        while any(i == len(strs[j]) or strs[j][i] != first[i] for j in range(1,len(strs))): #注意加any
            return first[:i]
    return first
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/nendie1/article/details/122767007

leetcode(14)—— 最长公共前缀_liu zhian的博客-爱代码爱编程

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

leetcode刷题——第十四题(最长公共前缀)-爱代码爱编程

14.最长公共前缀 题目描述思路代码实现 题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入: [“flower”,“flow”,“

leetcode第十四题java解答——最长公共前缀_qq_42882229的博客-爱代码爱编程

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

leetcode——最长公共前缀_自傷無色丶的博客-爱代码爱编程

题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 说明: 所有输入只包含小写字母 a

leetcode——第十四题(c++):最长公共前缀-爱代码爱编程

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

leetcode每日一题——最长公共前缀-爱代码爱编程

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

最长公共前缀问题————leetcode第14题详解-爱代码爱编程

请看下题,题目来源自leetcode第14题: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入: [“flower”,“flow”,“flight”] 输出: “fl” 示例 2: 输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。 说明:

leetcode 523、560—— 前缀和技巧-爱代码爱编程

前缀和技巧 前缀和1、定义2、题解:LeetCode560. 和为K的子数组方法一:穷举所有子数组,计算子数组的和优化解法3、题解:LeetCode523. 连续的子数组和 前缀和 1、定义 前缀和的思路是这样的,对于一个给定的数组 nums,我们额外开辟一个前缀和数组进行预处理。 int n = nums.size(); // 前缀和数

LeetCode初级算法题——字符串类——算法总结-爱代码爱编程

LeetCode初级算法字符串类——算法总结 PS:算法并非原创,总结的本意在于温故知新、巩固知识。侵删。 1、反转字符串 使用C++解答,代码如下: class Solution { public: void reverseString(vector<char>& s) { int n=s.size();

LeetCode——python3最长公共前缀——2020.11.24-爱代码爱编程

最长公共前缀 一丶题目代码二丶运行结果三丶LeetCode提交代码四丶运行代码——雄关漫道真如铁,而今迈步从头越—— 一丶题目代码 #项目名称: #项目简介: #作 者:key #开发时间:2020/11/24 23:15 """ 14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串

Leetcode高频算法题——字节跳动篇-爱代码爱编程

众所周知,字节跳动面试非常喜欢考算法题。 Leetcode官方的企业题库不仅付费,而且题量非常大。 因此,我从20年7月开始,手动整理牛客面经涉及的Leetcode算法题,并按照频度由高到低进行了排列。以下列出的250多道高频题目。 如果你想查看按部门、岗位查看高频算法题,或者查看其他大厂的题库,可以使用我开发的CodeTop:https://cod

力扣第14题——最长公共前缀-爱代码爱编程

问题描述: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。   示例 1: 输入:strs = ["flower","flow","flight"] 输出:"fl" 示例 2: 输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。 解题思路: 首

LeetCode300题计划——11.最长公共前缀-爱代码爱编程

题目: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 class Solution11 { public String longestCommonPrefix(String[] strs) { // 1.如果传进来的是空数组,则返回空 if(strs.length =

新手小白LeetCode刷题(四)——寻找最长公共前缀-爱代码爱编程

新手小白LeetCode刷题(四)——寻找最长公共前缀 前言一、问题二、算法思路总结 前言 今天又到了愉快的周末,刷完这道题就可以放假啦! 一、问题 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入:strs = [“flower”,“flow”,“flight”] 输出

2021.12.22LeetCode每日一题——重复叠加字符串匹配-爱代码爱编程

目录 重复叠加字符串匹配 描述 示例 1 示例 2 示例 3 示例 4 提示 方法一:暴力 方法二:Rabin-Karp 算法 方法三:KMP算法 重复叠加字符串匹配 描述 给定两个字符串 a 和 b,寻找重复叠加字符串 a 的最小次数,使得字符串 b 成为叠加后的字符串 a 的子串,如果不存在则返回 -1。 注意:字符串

leetcode刷题——最长公共前缀(Java)-爱代码爱编程

1.题目 2.思路 在字符串数组中随便选择一个字符串作为要返回的用来截取最长公共前缀,我们不妨选择第一个字符串,设置一个指针i,算法结束后指针i的前面就是最长公共前缀。i的移动条件是关键。 3.解题 class Solution { public String longestCommonPrefix(String[] strs) {

LeetCode 454. 四数相加 II-爱代码爱编程

使用哈希法的经典题目,与两数之和的思路有点像。把暴力法四重循环变成了两个二重循环 class Solution { public: int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, v