140 單詞拆分 II

2021-10-10 04:18:51 字數 922 閱讀 4230

140. 單詞拆分 ii

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

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

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

示例 1:

輸入:s = "catsanddog"

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

輸出:[

"cats and dog",

"cat sand dog"

]示例 2:

輸入:s = "catsandog"

worddict = ["cats", "dog", "sand", "and", "cat"]輸出:

思路分析:字串切割,典型的回溯問題,但是直接回溯的話,會超時,所以要新增記憶的小本本。

unordered_map> memo;

vectorwordbreak(string s, vector& worddict)

vectorbacktrack(string &s,unordered_set&dict,int start)

if(start>=s.size());

}vectorres;

for(int i=start;itmp=backtrack(s,dict,i+1);

for(auto v:tmp)}}

backtrack(s,dict,0);

return memo[0];

}void backtrack(string &s,unordered_set&dict,int start);

return;

}for(int i=start;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

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