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

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://www.xdnf.cn/news/19963.html

相关文章:

  • More Effective C++ 条款25:将构造函数和非成员函数虚拟化
  • upload-labs通关笔记-第17关文件上传之二次渲染png格式(PHP脚本法)
  • 使用Java定时爬取CSDN博客并自动邮件推送
  • linux---------------网络基础概念
  • 不同数据类型for循环
  • 软件测试基础知识(数据库篇)
  • 轻松Linux-6.基础IO
  • redis中查询key是否存在的命令
  • shell内置命令
  • C 语言标准输入输出库:`stdio.h` 的使用详解
  • Loot模板系统
  • AutoGPT 原理与实践:从AI助理到“自主任务完成者” (人工智能入门系列)
  • Linux 入门到精通,真的不用背命令!零基础小白靠「场景化学习法」,3 个月拿下运维 offer,第二十五天
  • go速通(1/10)
  • K8s基于节点软亲和的高 CPU Pod 扩容与优先调度方案
  • 【目标检测】特征理解与标注技巧
  • 详尽 | Deeplabv3+结构理解
  • 虚拟机详细图文教程系列14、Linux虚拟机Centos8系统下载安装Python-Pycharm
  • Crush AI:终端里的新晋编码神器,快到飞起
  • Shapely
  • Python测试框架Pytest的参数化
  • 【python】运算符及语句
  • LeetCode 1023.驼峰式匹配
  • 3-7〔OSCP ◈ 研记〕❘ WEB应用攻击▸REST API概述
  • MTK Linux DRM分析(三十三)- MTK mtk_mipi_tx.c
  • 【10月优质EI会议合集|高录用】能源、机电一体化、材料、计算机、环境、电力、可再生资源、遥感、通讯、智慧交通...
  • 系统编程day03-进程
  • ​​​​​​​2025企业级GEO优化白皮书:技术生态与商业落地双轮驱动下的选择指南
  • 【2025ICCV】基于 ​CL-Splats​ 的3D高斯溅射模型
  • 苍穹外卖项目笔记day04--Redis入门