给你一个字符串 s
,请你将 s
分割成一些子串,使每个子串都是
回文串
。返回 s
所有可能的分割方案。
示例 1:
输入:s = "aab" 输出:[["a","a","b"],["aa","b"]]
示例 2:
输入:s = "a" 输出:[["a"]]
我们只要切片就行 把原字符串切片 然后用函数进行判断
class Solution:
def partition(self, s: str) -> List[List[str]]:
#这里我们要做的就是分段 分成一个一个字串 直接用python函数来判断是否回文
path=[]#这个用来每次记录产生的结果
resoult=[]#这个用来返回结果
def backtracking(start:int):
if len(s)<=start:#这里是不断的剪 不断的分成字串 分到底就添加
resoult.append(path[:])
return
for i in range(start,len(s)):
b=s[start:i+1]
#a =''.join(reversed(b))
if b == b[::-1]:
path.append(b)
else:continue
backtracking(i+1)
path.pop()
backtracking(0)
return resoult