前往
大廳
主題

LeetCode - 745. Prefix and Suffix Search 解題心得

Not In My Back Yard | 2021-05-24 00:00:03 | 巴幣 0 | 人氣 252

題目連結:


題目意譯:
設計一個有著一些字詞 words 的特殊字典,其藉由一個前綴以及一個後綴去搜尋裡面的字詞。

實作 WordFilter 類別:
WordFilter(string[] words) 初始化物件使得 words 存於字典裡。
f(string prefix, string suffix) 回傳字典裡字詞之索引值,其有著前綴 prefix 以及後綴 suffix 。如果有多個合法的索引值,則回傳最大的。如果字典中沒有相應的字詞,則回傳 -1 。

限制:
1 ≦ words.length ≦ 15000
1 ≦ words[i].length ≦ 10
1 ≦ prefix.length 、 suffix.length ≦ 10
words[i] 、 prefix 和 suffix 只包含小寫英文字母。
最多 15000 次呼叫為函式 f。



範例測資:
輸入:
["WordFilter", "f"]
[[["apple"]], ["a", "e"]]
輸出:
[null, 0]

解釋:
WordFilter wordFilter = new WordFilter(["apple"]);
wordFilter.f("a", "e"); // 回傳 0,因為索引值 0 的字詞有著前綴 = "a" 以及後綴 = "e"。


解題思維:
利用雜湊表(Hash Table)儲存每個字詞的所有可能前綴後綴之組合,然後將每種組合對應到字詞的對應索引值(如果有組合相同,則索引值取大的去存)。

因此我們可以直接利用雜湊表去尋找對應的索引值。如果存在就回傳該索引值;反之,回傳 -1 。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作