力扣分割回文串

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]])


猜你喜欢

转载自blog.csdn.net/weixin_41781408/article/details/88264644
今日推荐