{"id":832,"date":"2021-03-05T11:46:40","date_gmt":"2021-03-05T03:46:40","guid":{"rendered":"http:\/\/lonelinerd.com\/?p=832"},"modified":"2021-03-05T14:18:55","modified_gmt":"2021-03-05T06:18:55","slug":"leetcode-648","status":"publish","type":"post","link":"https:\/\/lonelinerd.com\/index.php\/2021\/03\/05\/leetcode-648\/","title":{"rendered":"[LeetCode\u5237\u984c\u7b46\u8a18] 648 &#8211; Replace Words"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"832\" class=\"elementor elementor-832\">\n\t\t\t\t\t\t<div class=\"elementor-inner\">\n\t\t\t\t<div class=\"elementor-section-wrap\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d7c5bdb elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d7c5bdb\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b8f9770\" data-id=\"b8f9770\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b0b9adb elementor-widget elementor-widget-text-editor\" data-id=\"b0b9adb\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<h4><span style=\"text-decoration: underline;\"><strong>\u984c\u76ee\u63cf\u8ff0\uff1a<\/strong><\/span><\/h4><p class=\"md-end-block md-p\"><span class=\"md-plain\">In English, we have a concept called <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">root<\/span><\/strong><\/span><span class=\"md-plain\">, which can be followed by some other word to form another longer word &#8211; let&#8217;s call this word <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">successor<\/span><\/strong><\/span><span class=\"md-plain\">. For example, when the <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">root<\/span><\/strong><\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>\"an\"<\/code><\/span><span class=\"md-plain\"> is followed by the <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">successor<\/span><\/strong><\/span><span class=\"md-plain\"> word <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>\"other\"<\/code><\/span><span class=\"md-plain\">, we can form a new word <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>\"another\"<\/code><\/span><span class=\"md-plain\">.<\/span><\/p><p class=\"md-end-block md-p\"><span class=\"md-plain\">Given a <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>dictionary<\/code><\/span><span class=\"md-plain\"> consisting of many <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">roots<\/span><\/strong><\/span><span class=\"md-plain\"> and a <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>sentence<\/code><\/span><span class=\"md-plain\"> consisting of words separated by spaces, replace all the <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">successors<\/span><\/strong><\/span><span class=\"md-plain\"> in the sentence with the <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">root<\/span><\/strong><\/span><span class=\"md-plain\"> forming it. If a <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">successor<\/span><\/strong><\/span><span class=\"md-plain\"> can be replaced by more than one <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">root<\/span><\/strong><\/span><span class=\"md-plain\">, replace it with the <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">root<\/span><\/strong><\/span><span class=\"md-plain\"> that has <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">the shortest length<\/span><\/strong><\/span><span class=\"md-plain\">.<\/span><\/p><p class=\"md-end-block md-p\"><span class=\"md-plain\">Return <\/span><span class=\"md-pair-s \"><em><span class=\"md-plain\">the <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>sentence<\/code><\/span><\/em><\/span><span class=\"md-plain\"> after the replacement.<\/span><\/p><p class=\"md-end-block md-p\">\u00a0<\/p><p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Example 1:<\/span><\/strong><\/span><\/p><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"\" spellcheck=\"false\"><span role=\"presentation\">Input: dictionary = [\"cat\",\"bat\",\"rat\"], sentence = \"the cattle was rattled by the battery\"<\/span><br \/><span role=\"presentation\">Output: \"the cat was rat by the bat\"<\/span><\/pre><p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Example 2:<\/span><\/strong><\/span><\/p><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"\" spellcheck=\"false\"><span role=\"presentation\">Input: dictionary = [\"a\",\"b\",\"c\"], sentence = \"aadsfasf absbs bbab cadsfafs\"<\/span><br \/><span role=\"presentation\">Output: \"a a b c\"<\/span><\/pre><p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Example 3:<\/span><\/strong><\/span><\/p><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"\" spellcheck=\"false\"><span role=\"presentation\">Input: dictionary = [\"a\", \"aa\", \"aaa\", \"aaaa\"], sentence = \"a aa a aaaa aaa aaa aaa aaaaaa bbb baba ababa\"<\/span><br \/><span role=\"presentation\">Output: \"a a a a a a a a bbb baba a\"<\/span><\/pre><p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Example 4:<\/span><\/strong><\/span><\/p><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"\" spellcheck=\"false\"><span role=\"presentation\">Input: dictionary = [\"catt\",\"cat\",\"bat\",\"rat\"], sentence = \"the cattle was rattled by the battery\"<\/span><br \/><span role=\"presentation\">Output: \"the cat was rat by the bat\"<\/span><\/pre><p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Example 5:<\/span><\/strong><\/span><\/p><pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"\" spellcheck=\"false\"><span role=\"presentation\">Input: dictionary = [\"ac\",\"ab\"], sentence = \"it is abnormal that this solution is accepted\"<\/span><br \/><span role=\"presentation\">Output: \"it is ab that this solution is ac\"<\/span><\/pre><p class=\"md-end-block md-p\">\u00a0<\/p><p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Constraints:<\/span><\/strong><\/span><\/p><ul class=\"ul-list\" data-mark=\"-\"><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>1 &lt;= dictionary.length &lt;= 1000<\/code><\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>1 &lt;= dictionary[i].length &lt;= 100<\/code><\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>dictionary[i]<\/code><\/span><span class=\"md-plain\"> consists of only lower-case letters.<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>1 &lt;= sentence.length &lt;= 10^6<\/code><\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>sentence<\/code><\/span><span class=\"md-plain\"> consists of only lower-case letters and spaces.<\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">The number of words in <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>sentence<\/code><\/span><span class=\"md-plain\"> is in the range <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[1, 1000]<\/code><\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">The length of each word in <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>sentence<\/code><\/span><span class=\"md-plain\"> is in the range <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[1, 1000]<\/code><\/span><\/p><\/li><li class=\"md-list-item\"><p class=\"md-end-block md-p\"><span class=\"md-plain\">Each two consecutive words in <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>sentence<\/code><\/span><span class=\"md-plain\"> will be separated by exactly one space.<\/span><\/p><\/li><li class=\"md-list-item md-focus-container\"><p class=\"md-end-block md-p md-focus\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>sentence<\/code><\/span><span class=\"md-plain\"> does not have leading or trailing spaces.<\/span><\/p><\/li><\/ul>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-23d2e93 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"23d2e93\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7531a3d\" data-id=\"7531a3d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9342398 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"9342398\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-600a750 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"600a750\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6bfaf13\" data-id=\"6bfaf13\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3285307 elementor-widget elementor-widget-text-editor\" data-id=\"3285307\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<h4><span style=\"text-decoration: underline;\"><strong>\u4e00\u5237\u984c\u89e3\uff08Trie\uff09\uff1a<\/strong><\/span><\/h4><p>\u00a0 \u00a0 \u00a0 \u00a0 \u9019\u984c\u7d66\u4e86\u6211\u5011\u4e00\u500b\u300c\u5b57\u6839\u300d\u5217\u8868\uff0c\u9084\u6709\u4e00\u500b\u53e5\u5b50\u5b57\u7b26\u4e32\uff0c\u8981\u6211\u5011\u5728\u9019\u500b\u53e5\u5b50\u4e2d\u627e\u51fa\u6240\u6709\u901a\u904e\u300c\u5b57\u6839 + \u4e00\u4e9b\u5b57\u6bcd\u300d\u7d44\u6210\u7684\u55ae\u8a5e\uff0c\u7136\u5f8c\u5c07\u9019\u4e9b\u55ae\u8a5e\u7528\u5b57\u6839\u53d6\u4ee3\u3002\u5c0d\u6b64\uff0c\u6211\u5011\u9700\u8981\u5169\u6b65\u5de5\u5e8f\uff1a<\/p><p>\u00a0 \u00a0 \u00a0 \u00a0 \u7b2c\u4e00\u6b65\uff0c\u5c07\u5b57\u6839\u88e1\u7684\u5b57\u7b26\u4e32\u653e\u5230\u4e00\u500b\u5b57\u9996\u6a39\u4e2d\uff0c\u69cb\u9020\u4e00\u500b\u5305\u542b\u4e86\u6240\u6709\u6307\u5b9a\u5b57\u6839\u7684\u5b57\u9996\u6a39\u3002<\/p><p>\u00a0 \u00a0 \u00a0 \u00a0 \u7b2c\u4e8c\u6b65\uff0c\u628a\u5b57\u9996\u6a39\u69cb\u5efa\u5b8c\u6210\u5f8c\uff0c\u518d\u5c0d\u53e5\u5b50\u4e2d\u7684\u6bcf\u500b\u55ae\u8a5e\u9032\u884c\u904d\u6b77\uff0c\u6aa2\u67e5\u9019\u4e9b\u55ae\u8a5e\u662f\u5426\u5305\u542b\u5b57\u9996\u6a39\u4e2d\u6240\u8a18\u9304\u7684\u5b57\u7b26\u3002\u5982\u679c\u5305\u542b\uff0c\u5247\u4ee3\u8868\u55ae\u8a5e\u662f\u7531\u5b57\u6839\u6216\u5b57\u6839+\u4e00\u4e9b\u5b57\u6bcd\u6240\u7d44\u6210\u7684\uff0c\u90a3\u5c31\u53ef\u4ee5\u7528\u5b57\u6839\u5c07\u5176\u53d6\u4ee3\uff0c\u5982\u679c\u4e0d\u5305\u542b\uff0c\u90a3\u5c31\u76f4\u63a5\u9032\u5165\u4e0b\u4e00\u500b\u55ae\u8a5e\u7684\u6aa2\u67e5\u4e2d\u3002<\/p>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-97d4a5b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"97d4a5b\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e285472\" data-id=\"e285472\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fb0ebb1 elementor-widget elementor-widget-text-editor\" data-id=\"fb0ebb1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"c#\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">class<\/span> <span class=\"cm-def\">Solution<\/span> {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-variable-3\">string<\/span> <span class=\"cm-variable\">ReplaceWords<\/span>(<span class=\"cm-variable\">IList<\/span><span class=\"cm-operator\">&lt;<\/span><span class=\"cm-variable-3\">string<\/span><span class=\"cm-operator\">&gt;<\/span> <span class=\"cm-variable\">dictionary<\/span>, <span class=\"cm-variable-3\">string<\/span> <span class=\"cm-variable\">sentence<\/span>) {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/Pass 1: \u6839\u64daroot\u69cb\u5efa\u5b57\u9996\u6a39<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">TrieNode<\/span> <span class=\"cm-variable\">rootNode<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-keyword\">new<\/span> <span class=\"cm-variable\">TrieNode<\/span>();<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">foreach<\/span>(<span class=\"cm-variable-3\">string<\/span> <span class=\"cm-variable\">root<\/span> <span class=\"cm-keyword\">in<\/span> <span class=\"cm-variable\">dictionary<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">TrieNode<\/span> <span class=\"cm-variable\">curr<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">rootNode<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">foreach<\/span>(<span class=\"cm-variable-3\">char<\/span> <span class=\"cm-variable\">c<\/span> <span class=\"cm-keyword\">in<\/span> <span class=\"cm-variable\">root<\/span>.<span class=\"cm-variable\">ToCharArray<\/span>())<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">curr<\/span>.<span class=\"cm-variable\">children<\/span>[<span class=\"cm-variable\">c<\/span> <span class=\"cm-operator\">-<\/span> <span class=\"cm-string\">'a'<\/span>] <span class=\"cm-operator\">==<\/span> <span class=\"cm-atom\">null<\/span>) { <span class=\"cm-variable\">curr<\/span>.<span class=\"cm-variable\">children<\/span>[<span class=\"cm-variable\">c<\/span> <span class=\"cm-operator\">-<\/span> <span class=\"cm-string\">'a'<\/span>] <span class=\"cm-operator\">=<\/span> <span class=\"cm-keyword\">new<\/span> <span class=\"cm-variable\">TrieNode<\/span>(); }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">curr<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">curr<\/span>.<span class=\"cm-variable\">children<\/span>[<span class=\"cm-variable\">c<\/span> <span class=\"cm-operator\">-<\/span> <span class=\"cm-string\">'a'<\/span>];<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">curr<\/span>.<span class=\"cm-variable\">word<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">root<\/span>;<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">StringBuilder<\/span> <span class=\"cm-variable\">sb<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-keyword\">new<\/span> <span class=\"cm-variable\">StringBuilder<\/span>();<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable-3\">string<\/span>[] <span class=\"cm-variable\">words<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">sentence<\/span>.<span class=\"cm-variable\">Split<\/span>(<span class=\"cm-string\">' '<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/Pass 2: \u904d\u6b77\u53e5\u5b50\u4e2d\u7684\u6240\u6709\u5b57\u7b26\u4e32\uff0c\u6aa2\u67e5\u662f\u5426\u5305\u542broot<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">foreach<\/span>(<span class=\"cm-variable-3\">string<\/span> <span class=\"cm-variable\">word<\/span> <span class=\"cm-keyword\">in<\/span> <span class=\"cm-variable\">words<\/span>)<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">sb<\/span>.<span class=\"cm-variable\">Length<\/span> <span class=\"cm-operator\">&gt;<\/span> <span class=\"cm-number\">0<\/span>) { <span class=\"cm-variable\">sb<\/span>.<span class=\"cm-variable\">Append<\/span>(<span class=\"cm-string\">\" \"<\/span>); } <span class=\"cm-comment\">\/\/\u5982\u679c\u52a0\u904e\u4e86\u4e00\u500b\u5143\u7d20\uff0c\u6bcf\u6b21\u904d\u6b77\u524d\u5148\u52a0\u4e00\u500b\u7a7a\u683c<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">TrieNode<\/span> <span class=\"cm-variable\">curr<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">rootNode<\/span>; <span class=\"cm-comment\">\/\/\u904d\u6b77\u5b57\u9996\u6a39<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u904d\u6b77\u6bcf\u500b\u5b57\u7b26\u4e32\u4e2d\u7684\u6240\u6709\u5b57\u7b26<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">foreach<\/span>(<span class=\"cm-variable-3\">char<\/span> <span class=\"cm-variable\">c<\/span> <span class=\"cm-keyword\">in<\/span> <span class=\"cm-variable\">word<\/span>.<span class=\"cm-variable\">ToCharArray<\/span>())<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  {<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u5b57\u7b26\u8207root\u4e4b\u9593\u6709\u51fa\u5165 || \u904d\u6b77\u5230root\u7684\u5e95\u90e8\uff08curr.word != null\uff09<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">if<\/span>(<span class=\"cm-variable\">curr<\/span>.<span class=\"cm-variable\">children<\/span>[<span class=\"cm-variable\">c<\/span> <span class=\"cm-operator\">-<\/span> <span class=\"cm-string\">'a'<\/span>] <span class=\"cm-operator\">==<\/span> <span class=\"cm-atom\">null<\/span> <span class=\"cm-operator\">||<\/span> <span class=\"cm-variable\">curr<\/span>.<span class=\"cm-variable\">word<\/span> <span class=\"cm-operator\">!=<\/span> <span class=\"cm-atom\">null<\/span>) { <span class=\"cm-keyword\">break<\/span>; }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u79fb\u52d5\u5230\u4e0b\u500b\u7bc0\u9ede<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">curr<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-variable\">curr<\/span>.<span class=\"cm-variable\">children<\/span>[<span class=\"cm-variable\">c<\/span> <span class=\"cm-operator\">-<\/span> <span class=\"cm-string\">'a'<\/span>];<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-comment\">\/\/\u5982\u679c\u5b57\u7b26\u4e32\u8207\u4e0d\u5305\u542broot\uff0c\u76f4\u63a5\u8fd4\u56de\u539f\u5b57\u7b26\uff0c\u5426\u5247\u5c31\u4f7f\u7528root\u53d6\u4ee3\u539f\u5b57\u7b26<\/span><\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-variable\">sb<\/span>.<span class=\"cm-variable\">Append<\/span>(<span class=\"cm-variable\">curr<\/span>.<span class=\"cm-variable\">word<\/span> <span class=\"cm-operator\">==<\/span> <span class=\"cm-atom\">null<\/span> <span class=\"cm-operator\">?<\/span> <span class=\"cm-variable\">word<\/span> : <span class=\"cm-variable\">curr<\/span>.<span class=\"cm-variable\">word<\/span>);<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0  }<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0 \u00a0 \u00a0<span class=\"cm-keyword\">return<\/span> <span class=\"cm-variable\">sb<\/span>.<span class=\"cm-variable\">ToString<\/span>();<\/span><br \/><span role=\"presentation\"> \u00a0  }<\/span><br \/><span role=\"presentation\">}<\/span><br \/><br \/><span role=\"presentation\"><span class=\"cm-keyword\">public<\/span> <span class=\"cm-keyword\">class<\/span> <span class=\"cm-def\">TrieNode<\/span><\/span><br \/><span role=\"presentation\">{<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-variable\">TrieNode<\/span>[] <span class=\"cm-variable\">children<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-keyword\">new<\/span> <span class=\"cm-variable\">TrieNode<\/span>[<span class=\"cm-number\">26<\/span>];<\/span><br \/><span role=\"presentation\"> \u00a0 \u00a0<span class=\"cm-keyword\">public<\/span> <span class=\"cm-variable-3\">string<\/span> <span class=\"cm-variable\">word<\/span> <span class=\"cm-operator\">=<\/span> <span class=\"cm-atom\">null<\/span>;<\/span><br \/><span role=\"presentation\">}<\/span><\/pre>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u984c\u76ee\u63cf\u8ff0\uff1a In English, we have a concept called root, which  &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/lonelinerd.com\/index.php\/2021\/03\/05\/leetcode-648\/\"> <span class=\"screen-reader-text\">[LeetCode\u5237\u984c\u7b46\u8a18] 648 &#8211; Replace Words<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":570,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,16],"tags":[],"class_list":["post-832","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming-notes","category-leetcodes"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/lonelinerd.com\/wp-content\/uploads\/2021\/02\/FeatureCover_LeetCoding.png","_links":{"self":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/832","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/comments?post=832"}],"version-history":[{"count":8,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/832\/revisions"}],"predecessor-version":[{"id":842,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/832\/revisions\/842"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/media\/570"}],"wp:attachment":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/media?parent=832"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/categories?post=832"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/tags?post=832"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}