【python/leectode/M/131】Palindrome Partitioning

题目【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]])