Leetcode 140 單詞拆分 II C

2021-10-07 08:33:35 字數 889 閱讀 1640

給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,在字串中增加空格來構建乙個句子,使得句子中所有的單詞都在詞典中。返回所有這些可能的句子。

說明:示例 1:

輸入:

s = "catsanddog"

worddict = ["cat", "cats", "and", "sand", "dog"]

輸出:[

"cats and dog",

"cat sand dog"

]

示例 2:
輸入:

輸出:[

]解釋: 注意你可以重複使用字典中的單詞。

示例 3:
輸入:

s = "catsandog"

worddict = ["cats", "dog", "sand", "and", "cat"]

輸出:

記憶性深搜dfs

我們用乙個雜湊表unordered_map,記錄拆分string的拆分結果。

每次我們對字串拆分時,都找字典中的單詞進行拆分,然後遞迴深搜剩下的字串的拆分結果,如果都能拆分,我們就將結果進行拼接,儲存在雜湊表中。詳細過程見**

unordered_map> list;

vector

dfs(

int begin,string& s,vector

& worddict)

;else}}

list[s]

= res;

return res;}}

vector

wordbreak

(string s, vector

& worddict)

leetcode 140單詞拆分

原想法 通過遍歷找出每個位點可能出現的單詞的列表,然後通過dfs遍歷找出所有的組合,有點類似於之前刷pat時用的dijstra dfs,如下 class solution else if cursor length 先通過迴圈搜尋出所有開始點可能出現的單詞 for int i 0 i全是a的那個點執...

LeetCode140 單詞拆分II

leetcode140.單詞拆分ii 動態規劃 dfs 回溯。動態規劃 根據139單詞拆分使用動態規劃dp j i 表示從s j.i 1 是可拆分的,可以理解為長度len的字串有len 1可以分割的位置。dfs 遞迴的遍歷當前字串,vectorpath用來記錄能夠拆分的一條路徑。回溯 同一分支的多種...

LeetCode 140 單詞拆分 II

問題描述 給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,在字串中增加空格來構建乙個句子,使得句子中所有的單詞都在詞典中。返回所有這些可能的句子。說明 示例 1 輸入 s catsanddog worddict cat cats and sand dog 輸出 cats and...