1.要求
分割回文串
给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。
返回 s 所有可能的分割方案。
示例:
输入: “aab”
输出:
[
[“aa”,“b”],
[“a”,“a”,“b”]
2.思路:列出所有的可能性分割,再去判断是否为回文串。
代码片
class Solution:
def ishuiwen(self,s): #验证回文
return s==s[::-1]
def partition(self, s: str) -> List[List[str]]:
if not s:
return [[]]
self.result = []
self.dfs(s, [])
return self.result
def dfs(self, s, temp):
if len(s) == 0:
self.result.append(temp)
for i in range(len(s)):
if self.ishuiwen(s[:i+1]): # 前i个
self.dfs(s[i+1:], temp + [s[:i+1]])