很經典的題,記錄下來留作複習
給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,在字串中增加空格來構建乙個句子,使得句子中所有的單詞都在詞典中。返回所有這些可能的句子。
說明:分隔時可以重複使用字典中的單詞。
你可以假設字典中沒有重複的單詞。12
示例 1:
輸入:
s = 「catsanddog」
worddict =
[「cat」, 「cats」, 「and」, 「sand」, 「dog」]
輸出:
[
「cats and dog」,
「cat sand dog」
]
示例 2:
輸入:worddict =
輸出:
[
]
解釋: 注意你可以重複使用字典中的單詞。
示例 3:
輸入:
s = 「catsandog」
worddict =
[「cats」, 「dog」, 「sand」, 「and」, 「cat」]
輸出:
[
]
解題思路:
**採用迴圈+遞迴的方式,每次都遍歷單詞字典,看s前面是否存在子串是字典裡的單詞,存在就放入res中,****也已解釋清楚,如下:
class
solution
vector
helper
(unordered_map>
& m,vector
& worddict,string s)
;// res儲存結果
vector res;
for(
auto word : worddict)
} m[s]
=res;
return res;}}
;
**二:
class
solution
void
backtrack
(const string& s,
int index)
;return;}
ans[index]=;
for(
int i = index +
1; i <= s.
size()
;++i)}}
}}};
140 單詞拆分 II
給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,在字串中增加空格來構建乙個句子,使得句子中所有的單詞都在詞典中。返回所有這些可能的句子。說明 分隔時可以重複使用字典中的單詞。你可以假設字典中沒有重複的單詞。示例 1 輸入 s catsanddog worddict cat ca...
140 單詞拆分 II
給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,在字串中增加空格來構建乙個句子,使得句子中所有的單詞都在詞典中。返回所有這些可能的句子。想到了單詞拆分,可以用動態規劃先判斷字串s中每個位置i是否可以拆分為單詞,dp i 表示 0,i 可以拆分,然後就可以根據dp i 來解決這個...
140 單詞拆分 II
140.單詞拆分 ii 給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,在字串中增加空格來構建乙個句子,使得句子中所有的單詞都在詞典中。返回所有這些可能的句子。說明 分隔時可以重複使用字典中的單詞。你可以假設字典中沒有重複的單詞。示例 1 輸入 s catsanddog wor...