131. Palindrome Partitioning(未完成)
阿新 • • 發佈:2018-02-18
ali nbsp question ase 寫入 all 直接 判斷 log
Given a string s, partition s such that every substring of the partition is a palindrome.
Return all possible palindrome partitioning of s.
For example, given s = "aab"
,
Return
[ ["aa","b"], ["a","a","b"] ]
解題思路
- 求所有答案,首先排除動態規劃,應該是DFS (Palindrome Partitioning II 求個數才是動歸)
- 遇到要求所有組合、可能、排列等解集的題目,一般都是DFS + backtracking
- 首先傳入s="aab" path=[] res = [], 首先切割出"a"(然後是"aa" "aab" ...),然後判讀它是不是回文串:
- 如果不是,直接跳過
- 如果是,則此時剩余的 s="ab", path += ["a"]
- 寫入res的判斷是,當s=""時,記錄結果
- 優化:可以通過用DP來計算任意s[i:j]是否是回文,並保存結果,再執行DFS,如果發現某條string不是回文,就可以直接退出,從而減少計算量
131. Palindrome Partitioning(未完成)