Code皮皮虾 一个沙雕而又有趣的憨憨少年,和大多数小伙伴们一样喜欢听歌、游戏,当然除此之外还有写作的兴趣,emm…,日子还很长,让我们一起加油努力叭🌈
话不多说,直达底部有粉丝专享福利!!!
😉毛遂自荐
毛遂自荐一下,给大家推荐一下自己的专栏😁,欢迎小伙伴们收藏关注😊
大厂面试题专栏
Java专栏
爬虫专栏
更多专栏尽在主页,点我😁!!!
🌝题目
点我 ! 力扣链接
🔥解题思路
题目要求返回结果——> 如果答案不止一个,返回长度最长且字典序最小的字符串。如果答案不存在,则返回空字符串。
可以得到的信息:1. 返回的字符串长度要长,在长度相等的情况下要字典序最小,2. 返回的字符串是可以通过删除 s 中的某些字符得到。
根据以上信息,可采用模拟法,即遍历 + 双指针
- 遍历
list ,对每一个字符串进行条件判断 - 通过双指针判断当前字符串是否可以通过删除 s 中的某些字符得到。
?代码实现
class Solution {
public String findLongestWord(String s, List<String> dictionary) {
int left = 0,right = 0;
String res = "";
int len = dictionary.size();
int len1 = s.length(),len2 = 0;
String tmp = "";
for (int i = 0;i < len;i++) {
left = 0;
right = 0;
tmp = dictionary.get(i);
len2 = tmp.length();
while (left < len1 && right < len2) {
if (s.charAt(left) == tmp.charAt(right)) {
left++;
right++;
}else {
left++;
}
}
if (right == len2) {
if ("".equals(res)) {
res = tmp;
continue;
}
if (res.length() < tmp.length()) res = tmp;
else if(res.length() == tmp.length()) res = res.compareTo(tmp) > 0 ? tmp : res;
}
}
return res;
}
}
💖最后
我是 Code皮皮虾,一个热爱分享知识的 皮皮虾爱好者,未来的日子里会不断更新出对大家有益的博文,期待大家的关注!!!
创作不易,如果这篇博文对各位有帮助,希望各位小伙伴可以一键三连哦!,感谢支持,我们下次再见~~~
公众号干货内容输出,囊括Java、Python爬虫、力扣题解、大厂面试题 四大系列,更有长时间总结的干货资源分享,后台回复:面试资料即可领取
最后,祝各位步步高升🚀🚀🚀
???????????????????????????????????????????????????粉丝福利👇🏻👇🏻👇🏻
|