力扣 140 單詞拆分II

2021-10-10 04:16:47 字數 1290 閱讀 3588

很經典的題,記錄下來留作複習

給定乙個非空字串 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...