leetcode 139 單詞拆分

2021-10-07 12:26:03 字數 1273 閱讀 5536

題目鏈結

給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,判定 s 是否可以被空格拆分為乙個或多個在字典**現的單詞。

拆分時可以重複使用字典中的單詞。

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

class

solution

for(

int i =

0; i < n;

++i)

hasvisit[loc + worddict[i]

.size()

]=true;if

(canbreak

(s.substr

(worddict[i]

.size()

), worddict, loc + worddict[i]

.size()

))}}

return

false;}

bool

wordbreak

(string s, vector

& worddict)

if(wordletters.

size()

< sletters.

size()

)for

(auto

&letter : sletters)

} n = worddict.

size()

; hasvisit = vector<

bool

>

(s.size()

+1,false);

return

canbreak

(s, worddict,0)

;}};

執行結果:通過

執行用時:4 ms, 在所有 c++ 提交中擊敗了96.81%的使用者

記憶體消耗:7.8 mb, 在所有 c++ 提交中擊敗了100.00%的使用者

本道題我之前用的遞迴,超出了時間的限制。所以我之後進行了減枝優化,先判斷worddicet內是否包含了字串s的全部字母,又設立訪問標誌,當某位ie已經訪問過時,則不再繼續訪問。

class

solution}}

return dp.

back()

;}};

範例用的動態規劃。

leetcode 139 單詞拆分

題目 給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,確定 s 是否可以被空格分割為乙個或多個在字典裡出現的單詞。你可以假設字典中無重複的單詞。例如,給出 s leetcode dict leet code 返回 true 因為 leetcode 可以被切分成 leet cod...

leetcode139 單詞拆分

給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,判定 s 是否可以被空格拆分為乙個或多個在字典中出現的單詞。說明 拆分時可以重複使用字典中的單詞。你可以假設字典中沒有重複的單詞。示例 1 輸入 s leetcode worddict leet code 輸出 true 解釋 返...

leetcode139 單詞拆分

給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,判定 s 是否可以被空格拆分為乙個或多個在字典 現的單詞。動態規劃,dp i 表示前i個字元能否被拆分 class solution def wordbreak self,s str,worddict list str bool ...