leetcode 1048. Longest String Chain(最长的词链)

Mac安装Weblogic教程 1.Weblogic的下载 这次安装的是最新版本12 官网下载地址: http://www.oracle.com/technetwork/middleware/weblogic/downloads/index.html 下载需要登录账号,如没有账号要注册一个 下载后的文件如下图,其中fmw_12.2.1.3.0_wls_quick.jar文件就是安装包了,注意现在不要对它进行解压 2.安装前的确... 阅读详情

在这里插入图片描述

A 是B的前任:不改变A中字母的顺序,仅添加一个字母可变成B,
词链的长度:[a, b, c, d]中a是b的前任,b是c的前任…
一个单词可作为词链,长度为1
从字符串words中抽出单词,它们能达到的最长词链的长度(因此抽出来的单词不一定要保持原顺序)。

思路:
在前面单词组成的词链长度基础上+1,是DP思想。
dp(word)定义为到word为止的词链长度。

因为只有长度短的才可能是前任,所以先给words排个序(题目中要求是抽出来的单词,不必要保持在words中的顺序)。

有个巧妙的方法,
首先每个单词自己可以形成词链,长度为1,
然后把一个单词顺序删除其中的每个字母,看剩下的部分在不在hashMap中,如果在,就是有前任,
词链长度为到前任为止的词链长度+1,和到当前单词的词链长度 中较大的那个,
也就是dp(word) = dp(remain+1,word)

public int longestStrChain(String[] words) {
    HashMap<String, Integer> dp = new HashMap<>();
    int res = 1;
    Arrays.sort(words, (a, b)->(a.length() - b.length()));
    
    for(String word : words) {
        dp.put(word, 1);  //一个单词的词链长度是1
        //顺序删除第i个字母,看剩下的是否在hashMap中存在
        for(int i = 0; i < word.length(); i++) {
            StringBuilder sb = new StringBuilder(word); //比2个substring拼起来要快
            String remain = sb.deleteCharAt(i).toString();
            if(dp.containsKey(remain)) {
                if(dp.get(remain) + 1 > dp.get(word)) {
                    dp.put(word, dp.get(remain)+1);
                    res = Math.max(res, dp.get(word));
                }
                
            }
        }
        
    }
    return res;
}
【华为OD技术面-手撕算法代码真题】- 最长公共前缀 🌟 强烈推荐:华为OD技术面试手撕算法代码真题 🌟大家好!今天我给大家推荐一份备受赞誉的华为OD技术面试手撕算法代码真题。所有题目均为华为od实际面试过程中出现的算法代码真题。 阅读详情

相关推荐

《科研伦理与学术规范》 全部 习题_答案 2020年秋

科研伦理与学术规范 答案 文章目录科研伦理与学术规范 答案1. 第一章课后习题(必做) 答案1.1 第一章Demo2. 第二章课后习题(必做) 答案3. 第三章课后习题(必做) 答案4. 第四章课后习题(必做) 答案5. 第五章课后习题(必做) 答案6. 第六章课后习题(必做) 答案 # 每行5题 #写于2020.11.17 侵删 1. 第一章课后习题(必做) 答案 ABC, A, B ,D ,ABCD ABC, D, A, BCD, C D, D, 1.1 第一章Demo

羊老羊 25万+

最长词链

有个按字典序放置的字典,大小是N,求出该字典中最长的词链,词链的定义是一个连续的单词表,使得前面的单词是后面单词的前缀,如ab,abc,abd那么词链就是ab,abc。最笨的方法很好像,复杂度是O(N*max_len(word)),在他的提醒下,电面完后才清晰,可惜了,可以这样做,用一个字典树来存放前i个单词,最单词末尾做标记,记录该单词的编号,每次在字典树插入当前单词的时候,在树上遍历,当符合这

chivalry 1216

Deepseek 10分钟化身理性荐股神器:触碰程序员不敢想的天花板

在这个消息疯狂、波动频繁的市场,“理性”两字显得弥足珍贵。通过Deepseek+AkShare+Aktools+Dify四位一体的方案,能帮我们降低信息搜集成本,并在短期投资领域搭建出一套“可解释、低门槛、易定制”的量化荐股流程。不要再盲目听小道消息或依赖情绪驱动,不妨给自己一个机会,让数据说话。而要注意的是,“理性荐股”并非万能,它只是工具,最终的收益还得依赖投资者自身对风险和机遇的权衡。祝大家都能在这股市里收获理性的底气,寻得更精准的入场时机。

qqxdh的博客 3750

LeetCode1048 最长字符串链

最长字符串链的解题思路

老师好我叫付十一的博客 394

Xilinx PCIe IP核示例工程仿真流程与关键任务解析

本文详细解析了Xilinx PCIe IP核示例工程的仿真流程与关键任务。通过搭建仿真环境、解读初始化日志,并深入剖析TSK_TX_MEMORY_WRITE_32等核心任务的TLP报文生成与交互过程,帮助开发者掌握PCIe IP核的仿真调试方法,为实际硬件设计提供可靠的验证基础。

weixin_28314575的博客 504

FLUENT UDF编译及蒸发冷凝相关问题

蒸发冷凝与相间传质

weixin_48029137的博客 1万+

LeetCode-1048-最长字符串链

word_k] 组成的序列,k >= 1,其中 word1 是 word2 的前身,word2 是 word3 的前身,依此类推。如果我们可以 不改变其他字符的顺序 ,在 wordA 的任何地方添加 恰好一个 字母使其变成 wordB ,那么我们认为 wordA 是 wordB 的 前身。链接:https://leetcode.cn/problems/longest-string-chain。例如,“abc” 是 “abac” 的 前身 ,而 “cba” 不是 “bcad” 的 前身。

Arbicoral的博客 234

Open3D 点云DBSCAN聚类算法

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,能够识别任意形状的聚类,并处理噪声数据。

纵马踏花向自由 1833

LeetCode 1048. 最长字符串链

LeetCode 1048. 最长字符串链 文章目录LeetCode 1048. 最长字符串链题目描述一、解题关键词二、解题报告1.思路分析2.时间复杂度3.代码示例2.知识点总结相同题目 题目描述  给出一个单词数组 words ,其中每个单词都由小写英文字母组成。 如果我们可以 不改变其他字符的顺序 ,在 wordA 的任何地方添加 恰好一个 字母使其变成 wordB ,那么我们认为 wordA 是 wordB 的 前身 。   例如,“abc” 是 “abac” 的 前身 ,而 “cba” 不是 “

Datao_csdn的博客 764

基于STM32设计的便携式心电信号监测系统_474

本课题设计并实现了一种基于STM32单片机的便携式心电信号监测系统。系统以STM32F103C8T6为核心控制单元,结合PulseSensor心率传感器,实现对人体心率信号的采集与处理。通过单片机内部ADC模块对传感器输出的模拟电压信号进行采样,并对采集数据进行分析处理,从而计算得到实时心率值。

158

YOLOv12改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

1️⃣ 什么!不知道如何改进模型⁉️ 本专栏所使用并改进的每一个模块均包含详细的模块分析、原理讲解、个人总结、多种改进方式以及完整的修改流程,所有改进100%可直接运行,性价比极高。2️⃣ 找不到合适的模块⁉️ 所有改进点均为近三年顶会,顶刊提出的先进算法,将其融入到中,并进行二次创新,新颖度高,创新度高,能够适应不同的任务场景。3️⃣ 不确定自己改进的步骤、结果是否正确⁉️ 订阅专栏即可进群享受模型训练、模型改进、论文写作、投稿选刊,从入门到论文的各种答疑内容,非常适合新手。4️⃣ 团队内发表数篇SCI论

Limiiiing的博客 2万+

LeetCode 1048. 最长字符串链(哈希+DP)

文章目录1. 题目2. 解题 1. 题目 给出一个单词列表,其中每个单词都由小写英文字母组成。 如果我们可以在 word1 的任何地方添加一个字母使其变成 word2,那么我们认为 word1 是 word2 的前身。 例如,“abc” 是 “abac” 的前身。 词链是单词 [word_1, word_2, …, word_k] 组成的序列,k >= 1,其中 word_1 是 word_2 的前身,word_2 是 word_3 的前身,依此类推。 从给定单词列表 words 中选择单词组成词链,

Michael是个半路程序员 1007

DataEase 未授权+远程代码执行漏洞复现(CVE-2025-49001、CVE-2025-49002)

DataEase 是一款开源的数据分析平台,提供丰富的数据可视化和分析功能,帮助用户轻松地进行数据探索和决策支持。近日,有关DataEase 被爆出多个漏洞,其中 CVE-2025-49001 是由于JWT校验机制错误导致攻击者可伪造JWT令牌绕过身份验证流程,CVE-2025-49002 是由于H2数据库模块没有严格过滤用户输入的JDBC连接参数,可使用大小写绕过补丁。攻击者可利用这些漏洞实现未授权代码执行,威胁用户数据和系统的安全。

李同學AI安全 1947

Leetcode-1048. Longest String Chain 最长字符串链 (DP) -python

题目 给出一个单词列表,其中每个单词都由小写英文字母组成。 如果我们可以在 word1 的任何地方添加一个字母使其变成 word2,那么我们认为 word1 是 word2 的前身。例如,“abc” 是 “abac” 的前身。 词链是单词 [word_1, word_2, …, word_k] 组成的序列,k >= 1,其中 word_1 是 word_2 的前身,word_2 是 word_3 的前身,依此类推。 从给定单词列表 words 中选择单词组成词链,返回词链的最长可能长度。 链接:ht

JamieLuo的博客 453

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

LeetCode 1048 最长字符串链(Longest String Chain)题解:三种动态规划思路与多语言实现

本文基于本仓库的 [Longest String Chain 解题文档](https://link.gitcode.com/i/e99ba43e42aabd0bbf740c3d36620438) 展开,系统讲解 LeetCode 1048「最长字符串链」的完整解题体系:从问题定义与前置知识出发,依次给出**自顶向下记忆化搜索(Top-Down DP)**、**自底向上两两比较 DP(Bottom-

gitblog_00851的博客 343

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

1048. Longest String Chain

题目: Given a list of words, each word consists of English lowercase letters. Let's sayword1is a predecessor ofword2if and only if we can add exactly one letter anywhere inword1to make it equal toword2. For example,"abc"is a predecessor of"abac"...

zxycs1996的博客 295

【Leetcode】1048. Longest String Chain

题目地址: https://leetcode.com/problems/longest-string-chain/ 给定一个单词列表AAA,如果一个单词s1s_1s1​在任意位置添加a∼za \sim za∼z的一个字符成为了s2s_2s2​,就可以将s2s_2s2​接到s1s_1s1​后面形成一条链。求该单词列表中的最长链长度。题目保证所有单词只含小写字母。 记忆化搜索的写法可以参照https://blog.csdn.net/qq_46105170/article/details/108688092。下面

数学、算法爱好者的博客 267

leetcode_1048. Longest String Chain_[DP,动态规划,记忆化搜索]

1048. Longest String Chain https://leetcode.com/problems/longest-string-chain/ Let's sayword1is a predecessor ofword2if and only if we can add exactly one letter anywhere inword1to make it ...

weixin_34332905的博客 318

LeetCode 1048. Longest String Chain【记忆化搜索,动态规划,哈希表,字符串】中等

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。

memcpy0的博客 1386

【leetcode】1048. Longest String Chain

题目如下: Given a list of words, each word consists of English lowercase letters. Let's sayword1is a predecessor ofword2if and only if we can add exactly one letter anywhere inword1to make it eq...

weixin_34185320的博客 245

LeetCode 1048 Longest String Chain

1048 Longest String Chain https://leetcode.com/problems/longest-string-chain/ Given a list of words, each word consists of English lowercase letters. Let’s say word1 is a predecessor of word2 if and only if we can add exactly one letter anywhere in word1 t

cyberickk blog 225

LeetCode 1048. Longest String Chain

Given a list of words, each word consists of English lowercase letters. Let's sayword1is a predecessor ofword2if and only if we can add exactly one letter anywhere inword1to make it equal towo...

taoqick的专栏 361

LeetCode 1048. Longest String Chain【最长字符串链+LIS+集合划分观点】

文章目录题目描述知识点结果实现码前思考代码实现码后思考 题目描述 知识点 动态规划,类似于LIS,只是上升的规则有点复杂罢了。 结果 实现 码前思考 这个问题与LIS的最最基本的思想是类似的,只不过这里不要求是子串了,这里可以乱序的,而LIS要求必须是子串。比如:Input:["aaa","aa","a"] output:3 我之前写的时候,以为跟LIS是一样的,必须是子串,但是事实证...

yc_cy1999的博客 362

leetcode 1048. Longest String Chain 最长字符串链-耗时100

Problem:耗时100%,记忆化搜索,深度优先搜索,哈希表,相同长度的字符串放在一起,先根据字符串的长度分别放在不同的列表中,每个列表的字符串长度相同,然后拿到最长的字符串长度,对每个字符串,从它开始遍历的,从小到大的,而且循环的右边界定义为:( i <= maxLen - mx + 1 )也就是前几次遍历已经拿到了“最大的”长度mx,所以比maxLen - mx + 1更长的字符串不需要遍历了,即使遍历长度也会 < mx。

邹九的个人博客 167

LeetCode 1048. Longest String Chain?

we define two words can form a chain: word1 word2, if we can only add one letter to word1 that makes it word2 then they are a chain. so we are given a list of words, Return the longest possible length of a word chain with words chosen from the given list o

Tech in Pieces 451

[leetcode] 1048. Longest String Chain

Description Given a list of words, each word consists of English lowercase letters. Let’s say word1 is a predecessor of word2 if and only if we can add exactly one letter anywhere in word1 to make it equal to word2. For example, “abc” is a predecessor of

Learning from the mistakes 267
上一篇: docker入门(安装,常用功能使用整理)
下一篇: docker login失败:err: exit status 1, Try “pass init“
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值