LeetCode 524. 通过删除字母匹配到字典里最长单词(双指针)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 524. 通过删除字母匹配到字典里最长单词(双指针)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
給定一個字符串和一個字符串字典,找到字典里面最長的字符串,該字符串可以通過刪除給定字符串的某些字符來得到。
如果答案不止一個,返回長度最長且字典順序最小的字符串。如果答案不存在,則返回空字符串。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/longest-word-in-dictionary-through-deleting
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
class Solution { //C++ public:string findLongestWord(string s, vector<string>& d) {string ans;int i, j, k;for(i = 0; i < d.size(); ++i){for(j = k = 0; j <s.size() && k<d[i].size(); ++j){if(s[j] == d[i][k])//匹配了,移動一位k++;}if(k == d[i].size())//都匹配過了{if(d[i].size() > ans.size())ans = d[i];else if(d[i].size() == ans.size() && d[i] < ans)ans = d[i];}}return ans;} };148 ms 14.8 MB
class Solution:# py3def findLongestWord(self, s: str, d: List[str]) -> str:ans = ""n = len(d)m = len(s)for i in range(n):j = k = 0while j < m and k < len(d[i]):if s[j]==d[i][k]:k += 1j += 1if k==len(d[i]):if (len(d[i]) > len(ans)) or (len(d[i])==len(ans) and d[i] < ans):ans = d[i]return ans724 ms 16 MB
總結
以上是生活随笔為你收集整理的LeetCode 524. 通过删除字母匹配到字典里最长单词(双指针)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1283. 使结果不超
- 下一篇: Feature Engineering