题目链接
https://leetcode.com/problems/palindrome-partitioning/
题目原文
Given a string s, partition s such that every substring of the partition is a palindrome.
Return all possible palindrome partitioning of s.
For example, given s = "aab"
,
Return
[
["aa","b"],
["a","a","b"]
]
题目大意
将字符串进行切割,使得每个字符都是回文子串,返回所有可能的切割方式
解题思路
使用dfs,使用递归的方式,对字符串进行切割
代码
class Solution(object):
def partition(self, s):
"""
:type s: str
:rtype: List[List[str]]
"""
Solution.ans = []
self.dfs(s, [])
return Solution.ans
def isPalindrome(self, s):
for i in range(len(s)):
if s[i] != s[len(s) - i - 1]:
return False
return True
def dfs(self, s, stringlist):
if len(s) == 0:
Solution.ans.append(stringlist)
for i in range(1, len(s) + 1):
if self.isPalindrome(s[:i]):
self.dfs(s[i:], stringlist + [s[:i]])