日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 648. 单词替换(Trie树)

發(fā)布時間:2024/7/5 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 648. 单词替换(Trie树) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 題目

在英語中,我們有一個叫做 詞根(root)的概念,它可以跟著其他一些詞組成另一個較長的單詞——我們稱這個詞為 繼承詞(successor)。例如,詞根an,跟隨著單詞 other(其他),可以形成新的單詞 another(另一個)。

現(xiàn)在,給定一個由許多詞根組成的詞典和一個句子。你需要將句子中的所有繼承詞用詞根替換掉。如果繼承詞有許多可以形成它的詞根,則用最短的詞根替換它。

你需要輸出替換之后的句子。

輸入: dict(詞典) = ["cat", "bat", "rat"] sentence(句子) = "the cattle was rattled by the battery" 輸出: "the cat was rat by the bat"注: 輸入只包含小寫字母。 1 <= 字典單詞數(shù) <=1000 1 <= 句中詞語數(shù) <= 1000 1 <= 詞根長度 <= 100 1 <= 句中詞語長度 <= 1000

2. Trie解題

參考:Trie樹

  • 先將單詞插入Trie樹
  • 然后依次查詢每個單詞的各前綴是否在Trie中,進(jìn)行替換
class TrieNode//節(jié)點 { public:char ch;TrieNode *next[26];bool isEnd;TrieNode(char c = '/'):ch(c),isEnd(false) {memset(next, 0, sizeof(TrieNode*)*26);} }; class Trie//Trie樹 { public:TrieNode *root;Trie(){root = new TrieNode();}~Trie()//析構(gòu)釋放內(nèi)存{destroy(root);}void destroy(TrieNode *root){if(root == NULL)return;for(int i = 0; i < 26; i++)destroy(root->next[i]);delete root;}void insert(string str)//插入單詞{TrieNode *cur = root;for(char s:str){if(cur->next[s-'a'] == NULL)cur->next[s-'a'] = new TrieNode(s-'a');cur = cur->next[s-'a'];}cur->isEnd = true;} }; class Solution {Trie tree; public:string replaceWords(vector<string>& dict, string sentence) {for(string s:dict)tree.insert(s);string word, ans, prefix;TrieNode *cur = tree.root;istringstream in(sentence);int i, chIdx;while(in >> word){cur = tree.root;prefix = "";for(i = 0; i < word.size(); ++i){chIdx = word[i]-'a';if(cur->next[chIdx] == NULL){ans += word;break;}else{prefix.push_back(word[i]);if(cur->next[chIdx]->isEnd){ans += prefix;break;}if(i == word.size()-1)//最后一個字符特殊處理ans += prefix;}cur = cur->next[chIdx];}ans.push_back(' ');}ans.pop_back();//刪除空格return ans;} };

總結(jié)

以上是生活随笔為你收集整理的LeetCode 648. 单词替换(Trie树)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本高清在线播放 | 亚洲黄色自拍 | 日韩精品久久一区二区 | 青青草国产在线观看 | 国产成人精品亚洲男人的天堂 | 欧美视频黄 | 久久久久久久久久久久久久久久久久 | av午夜在线观看 | 一本在线免费视频 | 国产一区二区视频在线 | 91精品99| 久操视频免费看 | 精品人妻一区二区免费视频 | 91香蕉国产在线观看软件 | 高h免费视频 | 欧美日韩激情在线 | 欧美另类z0z变态 | 欧美精品一区二区三区久久久竹菊 | 久久精品a | 亚洲午码| 草逼免费视频 | 黄色三及 | 亚洲成人v | 72pao成人国产永久免费视频 | 三级色网站| 一级伦理片 | 国产高清免费在线观看 | 国产第一毛片 | 久久久久久久国产精品毛片 | 最污的网站 | 少妇一级淫片免费放 | 蜜桃aaa | 美女屁股无遮挡 | 日本四级电影 | 国产三级日本三级在线播放 | 美女网站黄页 | 毛片基地站 | 国产精品免费一区二区区 | 91丨九色丨蝌蚪丨对白 | 日日燥夜夜燥 | 欧美日韩免费在线观看 | 国产婷婷一区二区 | 国产精品九| 双性人bbww欧美双性 | 不卡av网站 | 97香蕉超级碰碰久久免费软件 | 中文字幕一区在线播放 | 古装三级吃奶做爰 | 在线国产一区二区三区 | 成人公开免费视频 | 在线免费观看高清视频 | 日韩中文无 | 九九综合 | 四虎免费看黄 | 在线精品视频免费观看 | 成人黄色小说视频 | 九色国产精品 | 久久国产热视频 | 国产精品三级久久久久久电影 | 欧美日韩国产精品综合 | 国产在线1| 麻豆精品国产传媒av绿帽社 | 亚洲av电影一区二区 | 免费看的黄色网 | 在线免费观看av的网站 | 中文字幕久久精品 | 成人av影院| 欧洲亚洲视频 | 青青草原国产 | 欧美a级在线 | 国产又粗又大又硬 | 国产精品人妻一区二区三区 | 91爽爽 | 中文字幕第10页 | 日韩二区在线观看 | 亚洲制服av | 久久中文字幕av | av综合一区 | 无码av免费毛片一区二区 | 嫩草视频一区二区三区 | 九九热在线观看 | 成人毛片18女人 | 免费一区二区在线观看 | 日韩综合区 | 琪琪伦伦影院理论片 | 骑骑上司妻电影 | 美日韩三级 | 国产 欧美 精品 | 国产色片在线观看 | 日本高清有码 | 日韩av一区二区三区 | 久久艹影院 | 亚洲成av人片一区二区梦乃 | www成人| 国产白丝av| 国产精品99久久久久久大便 | www.成人在线观看 | 网站色 | 色月婷婷|