LeetCode Palindrome Partitioning
程序员文章站
2023-12-24 16:21:21
leetcode解题之palindrome partitioning
原题
将一个字符串分割成若干个子字符串,使得子字符串都是回文字符串,要求列出所有的分割方案。
注意点:
无
例子:
输入: s...
leetcode解题之palindrome partitioning
原题
将一个字符串分割成若干个子字符串,使得子字符串都是回文字符串,要求列出所有的分割方案。
注意点:
无例子:
输入: s = “aab”
输出: result = [[“a”, “a”, “b”], [“aa”, “b”]]
解题思路
采用了最简单的递归方法,将一个字符串分为前后两部分,如果第一部分是一个回文字符串,则对第二部分再次分割,不断递归,直到递归的终止条件——字符串为空为止;如果第一部分不是一个回文字符串,则尝试下一种分割方法。
源码">ac源码
class solution(object): def partition(self, s): """ :type s: str :rtype: list[list[str]] """ if not s: return [[]] result = [] for i in range(len(s)): if self.ispalindrome(s[:i + 1]): for r in self.partition(s[i + 1:]): result.append([s[:i + 1]] + r) return result def ispalindrome(self, s): return s == s[::-1] if __name__ == "__main__": assert solution().partition("aab") == [ ["a", "a", "b"], ["aa", "b"] ]
推荐阅读
-
LeetCode Palindrome Partitioning
-
POJ3126 Prime Path(BFS) 类似于Leetcode 单词接龙
-
LeetCode#773滑动谜题
-
LeetCode 42: Trapping Rain Water题解(python)
-
leetcode:129. 求根到叶子节点数字之和(深搜)s
-
leetcode:417. 太平洋大西洋水流问题(深搜)
-
leetcode:547. 朋友圈(深搜)
-
leetcode:101. 对称二叉树(深搜)
-
Leetcode 1091. 二进制矩阵中的最短路径 八个方向寻路最短路径 (BFS)
-
leetcode:1091. 二进制矩阵中的最短路径(广搜)