Palindrome partitioning
class Solution:
def __init__(self):
self.path = []
self.res = []
def backtrack(self, s, startIndex):
if startIndex == len(s):
self.res.append(self.path.copy())
return None
for i in range(startIndex, len(s)):
if s[startIndex : i + 1] == s[startIndex : i + 1][::-1]:
self.path.append(s[startIndex : i + 1])
self.backtrack(s, i + 1)
self.path.pop()
return None
def partition(self, s: str) -> List[List[str]]:
self.backtrack(s, 0)
return self.res
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.
Example 1:
Input: s = "aab" Output: [["a","a","b"],["aa","b"]]
Example 2:
Input: s = "a" Output: [["a"]]
Constraints:
1 <= s.length <= 16scontains only lowercase English letters.