筆者以c++
方式解決。
#include
"iostream"
using namespace std;
#include
"algorithm"
#include
"vector"
#include
"queue"
#include
"set"
#include
"map"
#include
"string"
#include
"stack"
class solution
/** * 判斷字串 s 是否 可以被字典 worddict 中的字元拆分
* @param s
* @param worddict
* @return
*/bool dfs
(string s, vector
&worddict)
// 由於 set 是有序集和,直接查詢即可
// 如果該字串已經計算過,直接返回 false
// 因為計算成功的直接就走了
auto iterator1 = setkeyschen.
find
(temp);if
(iterator1 != setkeyschen.
end())
// 遍歷 worddict 陣列
for(
int i =
0; i < worddict.
size()
;++i)
else}}
}return false;}}
;int
main()
; solution *psolution = new solution;
bool b = psolution->
wordbreak
(s, worddict)
; cout << b << endl;
system
("pause");
return0;
}
執行結果
有點菜,有時間再優化一下。
難得有時間刷一波leetcode
, 這次做乙個系統的記錄,等以後複習的時候可以有章可循,同時也期待各位讀者給出的建議。演算法真的是乙個照妖鏡,原來感覺自己也還行吧,但是演算法分分鐘教你做人。前人栽樹,後人乘涼。在學習演算法的過程中,看了前輩的成果,受益匪淺。
感謝各位前輩的辛勤付出,讓我們少走了很多的彎路!
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 ...