本文共 792 字,大约阅读时间需要 2 分钟。
Given a string s, partition s such that every substring of the partition is a palindrome.
Return all possible palindrome partitioning of s.
Example:
Input: "aab"Output:[ ["aa","b"], ["a","a","b"]]
记录所有一个字符串经过拆分后,全部被拆分字符串全部回文的结果。
这道题还是用dfs算法求解。
isPart判断是否回文,self.res存储所有结果。
if not s表示遍历完字符串而且path中的字符串都是回文的。(因为不是回文的就不会进入到dfs递归当中)
还有记得return
注意path是list,在加字符串的时候需要转为list。
class Solution: def partition(self, s: str) -> List[List[str]]: self.res=[] self.dfs([],s) return self.res def dfs(self,path,s): if not s: self.res.append(path) return for i in range(1,len(s)+1): if self.isPart(s[:i]): self.dfs(path+[s[:i]],s[i:]) def isPart(self,s): if s==s[::-1]: return True
转载地址:http://rcrbb.baihongyu.com/