Palindrome Partitioning
Problem
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.
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.
Pattern
String, Dynamic Programming, Backtracking
Approaches
Code
def partition(s: str) -> list[list[str]]:
partitions = []
def backtrack(partition, i):
if i == len(s):
partitions.append(partition)
for j in range(i + 1, len(s) + 1):
t = s[i:j]
if t == t[::-1]:
backtrack(partition + [t], j)
backtrack([], 0)
return partitions
Test
>>> from palindrome_partitioning__backtracking import partition
>>> sorted(partition("aab"))
[['a', 'a', 'b'], ['aa', 'b']]
>>> partition("a")
[['a']]
- palindrome_partitioning__backtracking.partition(s: str) list[list[str]]