文章目錄
- 😉毛遂自薦
- 🌝題目
- 🔥解題思路
- ?代碼實作
- 💖最后
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爬蟲、力扣題解、大廠面試題 四大系列,更有長時間總結的干貨資源分享,后臺回復:面試資料即可領取
最后,祝各位步步高升🚀🚀🚀
粉絲福利👇🏻👇🏻👇🏻
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/301025.html
標籤:java
