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

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.xdnf.cn/news/14710.html

相关文章:

  • JDK自带的HttpClient,替代Apache的更优解?
  • Spring Cloud:分布式事务管理与数据一致性解决方案
  • 【如何实现分布式压测中间件】
  • 【算法设计与分析】(二)什么是递归,以及分治法的基本思想
  • 【word】把参考文献序号统一换为上标
  • github上传代码步骤(http)
  • Redis--黑马点评--消息队列
  • 基于 SpringBoot 实现一个 JAVA 代理 HTTP / WS
  • 电压跟随器输入电压正常、输出电压等于0V?
  • WebRTC(十三):信令服务器
  • python动漫周边电商网站系统
  • 视频序列中的帧间匹配技术 FrameMatcher 详解
  • 领域驱动设计(DDD)【23】之泛化:从概念到实践
  • SQL 子查询全位置解析:可编写子查询的 7 大子句
  • Web基础关键_004_CSS(二)
  • 2023国赛linux的应急响应-wp
  • JSON简介及其应用
  • 【LLIE专题】EnlightenGAN 无监督低照度图像增强
  • 实现一个AI大模型当前都无法正确实现的基础二叉树读取算法
  • 商业秘密中经营信息的法律保护探析——以客户名册为例
  • 数字孪生技术引领UI前端设计新革命:实时交互与模拟预测
  • 【Bluedroid】蓝牙启动之BTM_reset_complete源码解析
  • yolov13+bytetrack的目标跟踪实现
  • pytorch中的几个概念
  • 港澳地区,海外服务器ping通可能是地区运营商问题
  • c# sugersql 获取子表数据排序
  • MySQL彻底卸载教程
  • 桌面小屏幕实战课程:DesktopScreen 16 HTTP
  • Java锁机制知识点
  • 《Go语言高级编程》RPC 入门