131. Palindrome Partitioning
Đề Bài
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.
Thuật Toán & Kỹ Thuật
⏱️ Thời gian
O(2ⁿ)
💾 Không gian
O(n)
Lời Giải
Python
0131-palindrome-partitioning.py
class Solution:
def partition(self, s: str) -> List[List[str]]:
res = []
def backTracking(s: str, path: List[str]) -> None:
if not s:
res.append(path)
return
for i in range(1, len(s) + 1):
if s[:i] == s[:i][::-1]:
backTracking(s[i:], path + [s[:i]])
backTracking(s, [])
return res