0131. Palindrome Partitioning

https://leetcode.com/problems/palindrome-partitioning

Description

Given a string s, partition s such that every substring of the partition is a palindrome. Return all possible palindrome partitioning of s.

A palindrome string is a string that reads the same backward as forward.

Example 1:

**Input:** s = "aab"
**Output:** [["a","a","b"],["aa","b"]]

Example 2:

**Input:** s = "a"
**Output:** [["a"]]

Constraints:

  • 1 <= s.length <= 16

  • s contains only lowercase English letters.

ac1: Backtracking, DFS

key:

  • isPalindrome();

  • think it as array subset problem

ac2: improve isPalindrome

https://leetcode.com/problems/palindrome-partitioning/discuss/41982/Java-DP-%2B-DFS-solution

ac3: faster

  • substring() is O(n) where n is the length of substring.

ac4: Memorization + DFS

it's slower and even error-prone

Last updated

Was this helpful?