131. Palindrome Partitioning Medium
Description
Given a string s, partition s such that every substring of the partition is a palindrome.
Return all possible palindrome partitioning of s.
Example
Input: "aab"
Output:
[
["aa","b"],
["a","a","b"]
]
题意
求给定字符串s的所有回文可能值。
解题思路
求所有的可能结果一般会想到用回溯。
该题要注意能够继续回溯的条件应该是其子区间也满足回文,回溯思想大体差不多注意每个问题的要求即可。
code
class Solution(object):
def partition(self, s):
"""
:type s: str
:rtype: List[List[str]]
"""
self.isPalindrome = lambda s : s == s[::-1]
res = []
self.recall(s,res,[])
return res
def recall(self, s, res, path):
if not s :
res.append(path)
return
for i in range(1,len(s)+1):
if self.isPalindrome(s[:i]):# 满足回文条件才继续
self.recall(s[i:], res, path+[s[:i]])