算法题13 分割回文串

Posted MKYAN

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法题13 分割回文串相关的知识,希望对你有一定的参考价值。

来源LeetCode 131:

题目:


给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。

返回 s 所有可能的分割方案。

示例:

输入: "aab"
输出:
[
  ["aa","b"],
  ["a","a","b"]
]

解题代码:

 1 class Solution:
 2     def partition(self, s):
 3         """
 4         :type s: str
 5         :rtype: List[List[str]]
 6         """
 7         res=[]
 8         self.dfs(s,[],res)
 9         return res
10     
11     def dfs(self,s,path,res):
12         if not s:
13             res.append(path)
14             return
15         for i in range(1,len(s)+1):
16             if s[:i]==s[i-1::-1]:
17                 self.dfs(s[i:],path+[s[:i]],res)
18                 

 

以上是关于算法题13 分割回文串的主要内容,如果未能解决你的问题,请参考以下文章

131. 分割回文串

算法---动态规划(背包问题分割回文串)

131. 分割回文串-回溯算法 (leetcode)

LeetCode 132. 分割回文串 II

每日5题分割回文串

LeetCode第131题—分隔回文串—Python实现