给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。
返回 s 所有可能的分割方案。
示例:
输入: "aab" 输出: [ ["aa","b"], ["a","a","b"] ]
class Solution(object):
def partition(self, s):
"""
:type s: str
:rtype: List[List[str]]
"""
l, res = len(s), list()
def dfs(start, tmp):
if start >= l:
res.append(tmp[:])
for i in range(start, l):
substring = s[start:i + 1]
if substring == substring[::-1]: #子串是回文串
tmp.append(substring)
dfs(i + 1, tmp)
tmp.pop()
dfs(0, list())
return res