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

给你一个字符串 s 和一个字符串数组 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, List<String> dictionary) {int res=0;String ret="";for(String k:dictionary){if(k.length()>s.length()||!longest(s,k)) continue;if(k.length()>res||ret.length()==0||k.length()==res&&ret.compareTo(k)>0){res=k.length();ret=k;}}return ret;}public boolean longest(String a,String b){int l=0,r=0;while(l<a.length()&&r<b.length()){if(a.charAt(l)==b.charAt(r))r++;l++;}return r==b.length();}
}

524. 通过删除字母匹配到字典里最长单词相关推荐

  1. JAVA中返回值为字母时_LeetCode#524通过删除字母匹配到字典里最长单词-java中CompareTo方法用法以及Comparator中Compare方法返回值...

    import java.util.Collections; import java.util.Comparator; import java.util.List; /* 524. 通过删除字母匹配到字 ...

  2. Leetcode刷题100天—524. 通过删除字母匹配到字典里最长单词(双指针)—day38

    前言: 作者:神的孩子在歌唱 大家好,我叫运智 524. 通过删除字母匹配到字典里最长单词 难度中等192收藏分享切换为英文接收动态反馈 给你一个字符串 s 和一个字符串数组 dictionary 作 ...

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

    leetcode力扣刷题打卡 题目:524. 通过删除字母匹配到字典里最长单词 描述:给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该 ...

  4. 2022-2-14 Leetcode 524.通过删除字母匹配到字典里最长单词

    我自己的方法: 1.依次从字典里取出每一个单词,在字符串 s 中进行查找. 查找的过程中可能出现的问题有: 字母出现多次,只找到最前面的字母,顺序上会有混乱 字母都找到了,但是都是同一个字母 简而言之 ...

  5. LeetCode 524. 通过删除字母匹配到字典里最长单词(双指针)

    1. 题目 给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到. 如果答案不止一个,返回长度最长且字典顺序最小的字符串.如果答案不存在,则返回空字 ...

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

    题目描述 给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给 定字符串的某些字符来得到.如果答案不止一个,返回长度最长且字典顺序最小的字符串. 如果答案不存在,则返回空字 ...

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

    文章目录 一.题目描述 二.解题思路 三.代码 一.题目描述 1.题目描述 给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以 ...

  8. 第十二Leetcode每日刷题——524. 通过删除字母匹配到字典里最长单词

    给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中的某些字符得到. 如果答案不止一个,返回长度最长且字母序最小 ...

  9. leetcode记录-524-通过删除字母匹配到字典里最长单词-双指针

    524.通过删除字母匹配到字典里最长单词 思路 理解题意是一大难点...对于list中的字符串,如果可以由s删除一些字符得到,那么这个字符串初步符合标准,把他和str(初始为空)的比较,如果其长度更长 ...

最新文章

  1. iOS 不同机型屏幕适配
  2. GNOME Menu File Browser-快速导航用户目次
  3. 翻转二叉树—leetcode226
  4. angular指令监听ng-repeat渲染完成后执行自定义事件方法
  5. Spring 源码分析 spring-core
  6. stl vector 函数_vector :: push_back()函数,以及C ++ STL中的示例
  7. python 条件概率_使用Pymc3的条件概率
  8. MongoDb In Action
  9. 收音机磁棒天线4根接法_重磅彩蛋:DE1103收音机不用打磨就能用拉杆/外接天线收中波...
  10. Linux高级命令及mysql数据安装
  11. 实用工具,可以生成dal层的相关cs代码
  12. 阿里云何登成:开放平台助力企业高效上云管云 | 云栖大会
  13. Spring MVC中的统一异常处理
  14. 数字化转型投入大、效果差,永洪BI如何帮助企业迈出数据应用第一步
  15. py爬虫爬取学校通知公告
  16. python绘制树状excel表格_Python-使用XlsxWriter模块在Excel工作表中绘制柱形图
  17. 在硅谷,中国工程师为什么干不过印度人?
  18. 《人机交互技术》第二章 感知和认知基础
  19. Java开发微信公众号-接口测试帐号接口配置及Java源代码
  20. jdbc.IncorrectResultSetColumnCountException: Incorrect column count: expected 1, actual 14

热门文章

  1. IO 多路复用之poll总结
  2. 08-图7 公路村村通 (30 分)
  3. Makefile用法链接
  4. Java面试题,java工程师求职简历
  5. Java并发Semaphore信号量的学习
  6. [JS 分析] 天_眼_查 字体文件
  7. 【codevs2497】 Acting Cute
  8. 网络对抗技术作业一 201421410031
  9. EF实体框架数据操作基类(转)
  10. MFC80.DLL复制到程序目录中,也有的说复制到安装目录中