leetcode 140 單詞拆分 II

2021-10-02 07:32:51 字數 820 閱讀 8351

給定乙個非空字串 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」]輸出:

解析:本題仍然是經典套路

第一題僅要求返回個數或者是否能夠

第二題要求返回所有的可能性。

仍然是使用回溯法解決。

這裡使用hashmap記憶化儲存過程中的結果,以免重複計算過多導致超時

class

solution

vector

helper

(string &s,vector

& worddict,

int now)

; vector res;

for(

auto w:worddict)

} m[now]

= res;

return res;}}

;

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...