524. 通过删除字母匹配到字典里最长单词
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. 通过删除字母匹配到字典里最长单词相关推荐
- JAVA中返回值为字母时_LeetCode#524通过删除字母匹配到字典里最长单词-java中CompareTo方法用法以及Comparator中Compare方法返回值...
import java.util.Collections; import java.util.Comparator; import java.util.List; /* 524. 通过删除字母匹配到字 ...
- Leetcode刷题100天—524. 通过删除字母匹配到字典里最长单词(双指针)—day38
前言: 作者:神的孩子在歌唱 大家好,我叫运智 524. 通过删除字母匹配到字典里最长单词 难度中等192收藏分享切换为英文接收动态反馈 给你一个字符串 s 和一个字符串数组 dictionary 作 ...
- 【524. 通过删除字母匹配到字典里最长单词】
leetcode力扣刷题打卡 题目:524. 通过删除字母匹配到字典里最长单词 描述:给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该 ...
- 2022-2-14 Leetcode 524.通过删除字母匹配到字典里最长单词
我自己的方法: 1.依次从字典里取出每一个单词,在字符串 s 中进行查找. 查找的过程中可能出现的问题有: 字母出现多次,只找到最前面的字母,顺序上会有混乱 字母都找到了,但是都是同一个字母 简而言之 ...
- LeetCode 524. 通过删除字母匹配到字典里最长单词(双指针)
1. 题目 给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到. 如果答案不止一个,返回长度最长且字典顺序最小的字符串.如果答案不存在,则返回空字 ...
- LeetCode 524 通过删除字母匹配到字典里最长单词
题目描述 给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给 定字符串的某些字符来得到.如果答案不止一个,返回长度最长且字典顺序最小的字符串. 如果答案不存在,则返回空字 ...
- LeetCode 524. 通过删除字母匹配到字典里最长单词
文章目录 一.题目描述 二.解题思路 三.代码 一.题目描述 1.题目描述 给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以 ...
- 第十二Leetcode每日刷题——524. 通过删除字母匹配到字典里最长单词
给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中的某些字符得到. 如果答案不止一个,返回长度最长且字母序最小 ...
- leetcode记录-524-通过删除字母匹配到字典里最长单词-双指针
524.通过删除字母匹配到字典里最长单词 思路 理解题意是一大难点...对于list中的字符串,如果可以由s删除一些字符得到,那么这个字符串初步符合标准,把他和str(初始为空)的比较,如果其长度更长 ...
最新文章
- iOS 不同机型屏幕适配
- GNOME Menu File Browser-快速导航用户目次
- 翻转二叉树—leetcode226
- angular指令监听ng-repeat渲染完成后执行自定义事件方法
- Spring 源码分析 spring-core
- stl vector 函数_vector :: push_back()函数,以及C ++ STL中的示例
- python 条件概率_使用Pymc3的条件概率
- MongoDb In Action
- 收音机磁棒天线4根接法_重磅彩蛋:DE1103收音机不用打磨就能用拉杆/外接天线收中波...
- Linux高级命令及mysql数据安装
- 实用工具,可以生成dal层的相关cs代码
- 阿里云何登成:开放平台助力企业高效上云管云 | 云栖大会
- Spring MVC中的统一异常处理
- 数字化转型投入大、效果差,永洪BI如何帮助企业迈出数据应用第一步
- py爬虫爬取学校通知公告
- python绘制树状excel表格_Python-使用XlsxWriter模块在Excel工作表中绘制柱形图
- 在硅谷,中国工程师为什么干不过印度人?
- 《人机交互技术》第二章 感知和认知基础
- Java开发微信公众号-接口测试帐号接口配置及Java源代码
- jdbc.IncorrectResultSetColumnCountException: Incorrect column count: expected 1, actual 14