美文网首页
131. 分割回文串(中等)-回溯

131. 分割回文串(中等)-回溯

作者: MatrixZ | 来源:发表于2023-05-27 13:05 被阅读0次

给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。
回文串 是正着读和反着读都一样的字符串

分析

  • 回溯,如果不改变原来的变量,也就是不使用引用变量的话,不需要更多操作和撤回的操作
  • 有两个变量需要注意,一个是全局的结果,一个是路径跟踪结果
  • 还要注意结束条件,这个可以根据具体场景想想,什么时候可以结束
  • 判断回文字符串可以通过一个简单的方式s[::-1]
class Solution:
    def partition(self, s: str) -> List[List[str]]:
        # 回溯,如果不改变只是复制变量进行传递,就不用考虑增加和撤销等操作

        def is_palindrome(s):
            return s == s[::-1]
        res = []
        def dfs(path, s):
            # 当字符串为空的时候,就是要返回了
            if not s:
                res.append(path)
                return

            for i in range(1, len(s) + 1):
                if is_palindrome(s[:i]):
                    dfs(path + [s[:i]], s[i:])

        dfs([], s)

        return res

相关文章

  • LeetCode-131-分割回文串

    LeetCode-131-分割回文串 131. 分割回文串[https://leetcode-cn.com/pro...

  • LeetCode 131-135

    131. 分割回文串[https://leetcode-cn.com/problems/palindrome-pa...

  • 2021.3.7每日一题

    131. 分割回文串[https://leetcode-cn.com/problems/palindrome-pa...

  • leetcode131 分割回文串 golang

    131. 分割回文串[https://leetcode-cn.com/problems/palindrome-pa...

  • 递归与回溯:131.分割回文串

    /** 题目 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回 s 所有可能的分割方案。 ...

  • Leetcode 131. 分割回文串(回溯算法 + 子串分割问

    问题描述 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。 示例 ...

  • 131.分割回文串

    题目描述 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回 s 所有可能的分割方案。 示例...

  • 131. 分割回文串

    给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 ...

  • backtracing—— 131. 分割回文串

    这个题是分割回文串,首先回文串的判断,就是设置两个变量,分别从头和尾比较,都一样则是回文串。 然后就是回溯法的思路...

  • 131. Palindrome Partitioning

    给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回溯 时...

网友评论

      本文标题:131. 分割回文串(中等)-回溯

      本文链接:https://www.haomeiwen.com/subject/xunledtx.html