Palindromic Partitioning
Let's solve the Palindromic Partitioning problem using Dynamic Programming.
Statement
Suppose you are given a string, s
. You need to perform the minimum number of cuts to divide the string into substrings, such that all the resulting substrings are palindromes.
Let’s say you have the following string:
- “apple”
The resulting substrings after performing the minimum number of cuts are:
- “a”“pp”“l”“e”
So, a minimum of cuts are required.
Constraints:
-
s.length
s
consists of only lowercase English characters.
Examples
No. | s | cuts |
1 | "sleek" | 3 |
2 | "adjacent" | 7 |
3 | "radar" | 0 |
Try it yourself
Implement your solution in the following coding playground.
function minCuts(s) {// Write your code herereturn -1;}export { minCuts };
Note: If you clicked the “Submit” button and the code timed out, this means that your solution needs to be optimized in terms of running time.
Hint: Use dynamic programming and see the magic.
Solution
We will first explore the naive recursive solution to this problem and then see how it can be improved using the Palindromic ...