【LeetCode】524-通过删除字母匹配到字典里最长单词
题目描述
给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到。如果答案不止一个,返回长度最长且字典顺序最小的字符串。如果答案不存在,则返回空字符串。
示例 1:
输入:
s = "abpcplea", d = ["ale","apple","monkey","plea"]输出:
"apple"
示例 2:
输入:
s = "abpcplea", d = ["a","b","c"]输出:
"a"
说明:
- 所有输入的字符串只包含小写字母。
- 字典的大小不会超过 1000。
- 所有输入的字符串长度不会超过 1000。
解题思路
- 通过双指针查看字典中的一个字符串是不是给定字符串的子序列
- 通过
compareTo
在同样长度下,找到字典顺序更小的那个
public String findLongestWord(String s, List<String> d) {String longestWord = "";for (String str : d){int l1 = longestWord.length();int l2 = str.length();if (isSubsequence(s, str)){if (l2 > l1 || (l2 == l1) && str.compareTo(longestWord)<0)longestWord = str;}}return longestWord;
}private boolean isSubsequence(String s, String target){int i = 0, j = 0;while (i < s.length() && j < target.length()){if (s.charAt(i) == target.charAt(j))j++;i++;}return j == target.length();
}
转载于:https://www.cnblogs.com/yuzhenzero/p/10691943.html
【LeetCode】524-通过删除字母匹配到字典里最长单词相关推荐
- LeetCode 524. 通过删除字母匹配到字典里最长单词(双指针)
1. 题目 给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到. 如果答案不止一个,返回长度最长且字典顺序最小的字符串.如果答案不存在,则返回空字 ...
- 2022-2-14 Leetcode 524.通过删除字母匹配到字典里最长单词
我自己的方法: 1.依次从字典里取出每一个单词,在字符串 s 中进行查找. 查找的过程中可能出现的问题有: 字母出现多次,只找到最前面的字母,顺序上会有混乱 字母都找到了,但是都是同一个字母 简而言之 ...
- LeetCode 524 通过删除字母匹配到字典里最长单词
题目描述 给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给 定字符串的某些字符来得到.如果答案不止一个,返回长度最长且字典顺序最小的字符串. 如果答案不存在,则返回空字 ...
- LeetCode 524. 通过删除字母匹配到字典里最长单词
文章目录 一.题目描述 二.解题思路 三.代码 一.题目描述 1.题目描述 给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以 ...
- Leetcode刷题100天—524. 通过删除字母匹配到字典里最长单词(双指针)—day38
前言: 作者:神的孩子在歌唱 大家好,我叫运智 524. 通过删除字母匹配到字典里最长单词 难度中等192收藏分享切换为英文接收动态反馈 给你一个字符串 s 和一个字符串数组 dictionary 作 ...
- 【524. 通过删除字母匹配到字典里最长单词】
leetcode力扣刷题打卡 题目:524. 通过删除字母匹配到字典里最长单词 描述:给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该 ...
- 524. 通过删除字母匹配到字典里最长单词
524. 通过删除字母匹配到字典里最长单词 给你一个字符串 s 和一个字符串数组 dictionary 作为字典,找出并返回字典中最长的字符串,该字符串可以通过删除 s 中的某些字符得到. 如果答案不 ...
- JAVA中返回值为字母时_LeetCode#524通过删除字母匹配到字典里最长单词-java中CompareTo方法用法以及Comparator中Compare方法返回值...
import java.util.Collections; import java.util.Comparator; import java.util.List; /* 524. 通过删除字母匹配到字 ...
- 第十二Leetcode每日刷题——524. 通过删除字母匹配到字典里最长单词
给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中的某些字符得到. 如果答案不止一个,返回长度最长且字母序最小 ...
- leetcode记录-524-通过删除字母匹配到字典里最长单词-双指针
524.通过删除字母匹配到字典里最长单词 思路 理解题意是一大难点...对于list中的字符串,如果可以由s删除一些字符得到,那么这个字符串初步符合标准,把他和str(初始为空)的比较,如果其长度更长 ...
最新文章
- ant models 内获取 url 的参数传递到组件
- oracle过滤某个字段重复记录,只获取一条记录
- TIME_WAIT状态的一些总结
- 利用福禄克DSX系列测试仪部署MPTL模块化插头端接链路
- Win32 API串口编程
- Nginx应用场景之负载均衡
- mysql utf8存不了中文乱码_MySQL怎么存文本不乱码?
- 好玩的WPF第一弹:窗体抖动+边框阴影效果+倒计时显示文字
- Java编程:切面条
- hibernate二级缓存作用、配置
- Linux Kernel Makefiles(转)
- loadrunner Lr_类函数之 lr_rendezvous()
- Oracle 11g 学习笔记-6(触发器、函数、存储过程、程序包)
- 特殊数字符号大全,word 数学符号
- 刚刚,人类第一次直接“看见”了黑洞
- 微信小程序实现字体渐变
- 数学建模学习(1) 线性规划
- 【数据结构】十进制转化为二进制
- matlab 已实现极差波动,关于黄金期货论文范文写作 中国黄金期货价格SVR智能预测相关论文写作资料...
- 人商城PHP7.0,wemall商城系统v7.0|php微信商城系统wemall v7.0下载