單詞拆分 II

2021-09-24 11:09:19 字數 674 閱讀 9222

單詞拆分 ii

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

說明:分隔時可以重複使用字典中的單詞。

你可以假設字典中沒有重複的單詞。

示例 1:

輸入:

s = "catsanddog"

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

輸出:[

"cats and dog",

"cat sand dog"

]

通過動態規劃判斷出字串s是否可以被拆分,如果可以則通過dfs找出對應的組合。

dfs是反向查的,同樣是利用了之前動態規劃的特性

//搜尋

void dfswordbreak(std::string s, std::vector& dp, vector& worddict, size_t _end, std::string str, std::vector& rs)

for (int i = _end-1; i >=0; --i)

}std::cout

return rs;

}

單詞拆分II

已知 給一字串s和單詞的字典dict,在字串中增加空格來構建乙個句子,並且所有單詞都來自字典。返回所有有可能的句子。示例 給一字串lintcode,字典為 de ding co code lint 則結果為 lint code lint co de 思路 用動態規劃的思路,這道題目按照遞迴是很容易解...

140 單詞拆分 II

給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,在字串中增加空格來構建乙個句子,使得句子中所有的單詞都在詞典中。返回所有這些可能的句子。說明 分隔時可以重複使用字典中的單詞。你可以假設字典中沒有重複的單詞。示例 1 輸入 s catsanddog worddict cat ca...

leetcode 單詞拆分II

這道題一眼看去,就死類似於單詞拆分i的深度優先搜尋就可以解決的題目,不過這裡公升級了,就是要把每一種切分結果都要返回。具體 如下 class solution def wordbreak self,s str,worddict list str list str mem tmp self.dfs s...