1. 程式人生 > >131. Palindrome Partitioning(未完成)

131. Palindrome Partitioning(未完成)

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(未完成)