131. Palindrome Partitioning
class Solution:
def partition(self, s: str) -> List[List[str]]:
res = []
def isPalindrome(start, end):
left = start
right = end
while left < right:
if s[left] != s[right]:
return False
left += 1
right -= 1
return True
def backtrack(curr, start):
if start == len(s):
res.append(list(curr))
return
for i in range(start, len(s)):
if isPalindrome(start, i):
curr.append(s[start:i+1])
backtrack(curr, i + 1)
curr.pop()
backtrack([], 0)
return res類似題目