【python/leectode/M/131】Palindrome Partitioning
题目
基本思路
使用DFS来找出所有符合条件的子串,判断回文也是在简单不过的函数
都是简单函数的堆积,问题不大
实现代码
class Solution(object):
def partition(self, s):
"""
:type s: str
:rtype: List[List[str]]
"""
if not s:
return [[]]
self.res = []
self.DFS(s,[])
return self.res
def isPalindrome(self,s):
length = len(s)
for i in range(length):
if s[i] != s[length-1-i]:
return False
return True
def DFS(self,s,temp):
if not s:
self.res.append(temp)
for i in range(len(s)):
if self.isPalindrome(s[:i+1]):
self.DFS(s[i+1:],temp+[s[:i+1]])