当前位置: 首页 > news >正文

Leetcode 3598. Longest Common Prefix Between Adjacent Strings After Removals

  • Leetcode 3598. Longest Common Prefix Between Adjacent Strings After Removals
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3598. Longest Common Prefix Between Adjacent Strings After Removals

1. 解题思路

这一题的话思路上就是一个累计数组的思路。考察任意一个位置 i i i上的答案,事实上就是考察 i − 1 i-1 i1之前所有相邻字符串的最大值与 i + 1 i+1 i+1之后所有相邻元素的最大值,以及 i − 1 i-1 i1 i + 1 i+1 i+1两个字符串的最大值,因此,我们只需要提前算好这些值即可快速求得任意位置上的答案了。

2. 代码实现

给出python代码实现如下:

class Solution:def longestCommonPrefix(self, words: List[str]) -> List[int]:n = len(words)if n == 1:return [0]if len(set(words)) == 1 and n > 2:return [len(words[0]) for _ in range(n)]def count_prefix(w1, w2):if len(w1) > len(w2):return count_prefix(w2, w1)ans = 0for ch1, ch2 in zip(w1, w2):if ch1 != ch2:breakans += 1return ansadj = [count_prefix(words[i], words[i+1]) for i in range(n-1)]left = [0 for _ in range(n)]right = [0 for _ in range(n)]for i in range(n-1):left[i+1] = max(left[i], adj[i])right[n-2-i] = max(right[n-1-i], adj[n-2-i])tri = [count_prefix(words[i-1], words[i+1]) for i in range(1, n-1)]ans = []for i in range(n):if i == 0:m = right[1]elif i == n-1:m = left[n-2]else:m = max(left[i-1], right[i+1])ans.append(max(m, tri[i-1]) if 1 <= i < n-1 else m)return ans

提交代码评测得到:耗时1000ms,占用内存40.39MB。

http://www.lryc.cn/news/576723.html

相关文章:

  • [database] Closure computation | e-r diagram | SQL
  • 【LeetCode 热题 100】560. 和为 K 的子数组——(解法二)前缀和+哈希表
  • swift-22-面向协议编程、响应式编程
  • SpringSecurity6-oauth2-三方gitee授权-授权码模式
  • 加密货币:USDC和比特币有什么区别?
  • web3区块链-ETH以太坊
  • 代理模式 - Flutter中的智能替身,掌控对象访问的每一道关卡!
  • aws(学习笔记第四十八课) appsync-graphql-dynamodb
  • Docker错误问题解决方法
  • Keil MDK 的 STM32 开发问题:重定向 printf 函数效果不生效(Keil MDK 中标准库未正确链接)
  • 基于springboot+vue的数字科技风险报告管理系统
  • 现代 JavaScript (ES6+) 入门到实战(一):告别 var!拥抱 let 与 const,彻底搞懂作用域
  • 领域驱动设计(DDD)【23】之泛化:从概念到实践
  • 网络缓冲区
  • DOP数据开放平台(真实线上项目)
  • 马斯克的 Neuralink:当意念突破肉体的边界,未来已来
  • Word之电子章制作——1
  • 【编译原理】期末
  • 华为云Flexus+DeepSeek征文|利用华为云一键部署的Dify平台构建高效智能电商客服系统实战
  • Youtube双塔模型
  • C++共享型智能指针std::shared_ptr使用介绍
  • cocos creator 3.8 - 精品源码 - 挪车超人(挪车消消乐)
  • Neo4j无法建立到 localhost:7474 服务器的连接出现404错误
  • Linux基本命令篇 —— less命令
  • springboot+Vue驾校管理系统
  • matplotlib 绘制水平柱状图
  • 基于LQR控制器的六自由度四旋翼无人机模型simulink建模与仿真
  • 使用deepseek制作“喝什么奶茶”随机抽签小网页
  • 我的世界模组开发进阶教程——机械动力的数据生成(2)
  • 【C++进阶】--- 继承