ETH官方钱包

前往
大廳
主題

LeetCode - 0140. Word Break II 解題心得

Not In My Back Yard | 2024-07-01 12:00:01 | 巴幣 0 | 人氣 62

題目連結:


題目意譯:
給定一個字串 s 以及一個字串之字典 wordDict,在 s 中加入若干個空白來形成一個句子,並使得該句子中的字詞都是字典中的合法字詞。回傳所有可能的句子,可以按任意順序排列。

注意到在一個字串分解中,字典中同一個字詞可以使用複數次。
 
限制:
1 ≦ s.length ≦ 20
1 ≦ wordDict.length ≦ 1000
1 ≦ wordDict[i].length ≦ 10
s 和 wordDict[i] 只由小寫英文字母組成。
wordDict 中所有字串皆相異。
輸入之生成滿足答案的長度不會超過 10 ^ 5。



範例測資:
範例 1:
輸入: s = "catsanddog", wordDict = ["cat","cats","and","sand","dog"]
輸出: ["cats and dog","cat sand dog"]

範例 2:
輸入: s = "pineapplepenapple", wordDict = ["apple","pen","applepen","pine","pineapple"]
輸出: ["pine apple pen apple","pineapple pen apple","pine applepen apple"]
解釋: 注意到你可以多次使用一個字典中的字詞。

範例 3:
輸入: s = "catsandog", wordDict = ["cats","dog","sand","and","cat"]
輸出: []


解題思維:
前一題類似,窮舉即可。

由於我們要「所有」可能的組合,因此遞迴列舉的方式(即 Top-Down)會好寫很多。




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

創作回應

更多創作