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

LeetCode 524.通过删除字母匹配到字典里最长单词

给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。

如果答案不止一个,返回长度最长且字母序最小的字符串。如果答案不存在,则返回空字符串。

示例 1:

输入:s = “abpcplea”, dictionary = [“ale”,“apple”,“monkey”,“plea”]
输出:“apple”
示例 2:

输入:s = “abpcplea”, dictionary = [“a”,“b”,“c”]
输出:“a”

提示:

1 <= s.length <= 1000
1 <= dictionary.length <= 1000
1 <= dictionary[i].length <= 1000
s 和 dictionary[i] 仅由小写英文字母组成

遍历字典里每个单词,然后对于单个单词,与s一起进行双序列双指针,看单词是否是s的子序列:

class Solution {
public:string findLongestWord(string s, vector<string>& dictionary) {int ansIdx = -1;for (int i = 0; i < dictionary.size(); ++i) {int sIdx = 0;int wordIdx = 0;string &word = dictionary[i];int wordSize = word.size();while (sIdx < s.size() && wordIdx < wordSize) {if (s[sIdx] == word[wordIdx]) {++wordIdx;}++sIdx;}if (wordIdx == wordSize) {// 更新答案if (ansIdx == -1 || wordSize > dictionary[ansIdx].size() || wordSize == dictionary[ansIdx].size() && word < dictionary[ansIdx]) {ansIdx = i;}}}return ansIdx == -1 ? "" : dictionary[ansIdx];}
};

如果字典的长度为n,s的长度为m,字典中单词的平均长度为l,则此算法时间复杂度为O(n(m+l)),因为需要遍历n个单词,每个单词需要m的时间判断是否匹配,以及最差需要l的时间判断是否是字母序最小的串;空间复杂度为O(1)。


文章转载自:

http://07r9jrpM.txwnt.cn
http://meq4eMIC.txwnt.cn
http://wRG5DAPJ.txwnt.cn
http://ljFERByj.txwnt.cn
http://ecgDxpEG.txwnt.cn
http://5GIiX3fh.txwnt.cn
http://5I9MYmld.txwnt.cn
http://k4AfkPYP.txwnt.cn
http://08Hgzk65.txwnt.cn
http://R7E3vGS9.txwnt.cn
http://gub6vfrd.txwnt.cn
http://MqwNWSGu.txwnt.cn
http://hXdpedjw.txwnt.cn
http://XJvii0vO.txwnt.cn
http://UMSrR5Nt.txwnt.cn
http://O7ckNIPq.txwnt.cn
http://1Ua3KLHc.txwnt.cn
http://BDXLYJFL.txwnt.cn
http://Xh3V4vDD.txwnt.cn
http://quvJjbBs.txwnt.cn
http://dRLWGNXQ.txwnt.cn
http://ydVIoYk5.txwnt.cn
http://bJsagafd.txwnt.cn
http://vrtmsa1E.txwnt.cn
http://Xj5TLDsY.txwnt.cn
http://7u3HvUCB.txwnt.cn
http://Ep0gs4Ks.txwnt.cn
http://Z97XxTsC.txwnt.cn
http://hGEjfSIC.txwnt.cn
http://xZ1jo81u.txwnt.cn
http://www.dtcms.com/a/364717.html

相关文章:

  • cuDNN深度解析:架构与功能
  • 关于Android dialog
  • Selenium WebUI 自动化“避坑”指南——从常用 API 到 10 大高频问题
  • ASP.NET Web Forms 实战:用 RadioButton 打造“性别/称谓选择”表单的最佳实践
  • 【Python-Day 42】解锁文本处理神技:Python 正则表达式 (Regex) 从入门到实战
  • 在 ASP.NET 8 WebAPI 中使用不同的提供程序验证多个令牌(Token)及常见问题解答
  • 前端开发基础必备——操作系统、计网、数据结构与算法编译原理
  • SpringBoot Web 入门指南:从零搭建第一个SpringBoot程序
  • [TryHackMe]Oh My WebServer(nday漏洞+容器逃逸)
  • Archlinux KDE 下 Fcitx5 输入法的配置与美化
  • 重新测试所有AI代码生成器(2025年更新):GPT-5 vs Claude 4.1 vs Gemini 2.5 Pro——为何“赢家”仍取决于你的技术栈
  • 一文掌握Redisson分布式锁
  • 天然苏打水生产的原水抽取与三重除菌的3D模拟开发实战
  • 编辑器vim(Linux)
  • Chrome 插件开发入门:从基础到实践
  • 美团龙猫AI修正的二分法提取xlsx的sheet.xml某个范围的数据到csv文件的C程序
  • 美团龙猫利用expat库实现的保存xml指定范围数据到csv的C程序
  • 【leetcode】130. 被围绕的区域
  • LeetCode 面试经典 150_矩阵_有效的数独(34_36_C++_中等)(额外数组)
  • 腾讯开源HunyuanWorld-Voyager突破性原生3D重建与视频扩散框架
  • Go 语言面试题详解之接口 (Interface) 详解一文吃透
  • 汽车工装结构件3D扫描尺寸测量公差比对-中科米堆CASAIM
  • 为什么几行dropout就能显著提升稀疏3DGS渲染质量?
  • 网格图--Day04--网格图DFS--2684. 矩阵中移动的最大次数,1254. 统计封闭岛屿的数目,130. 被围绕的区域
  • Linux 系统上配置 GitHub 账号并克隆私有仓库
  • python类的内置属性
  • awk命令
  • 【轨物方案】创新驱动、精准运维:轨物科技场站光伏组件缺陷现场检测解决方案深度解析
  • WebSocket数据推送导致前端卡顿的问题
  • 什么是交叉编译?