# 132-palindrome-partitioning-ii Try it on leetcode ## Description

Given a string s, partition s such that every substring of the partition is a palindrome.

Return the minimum cuts needed for a palindrome partitioning of s.

 

Example 1:

Input: s = "aab"
Output: 1
Explanation: The palindrome partitioning ["aa","b"] could be produced using 1 cut.

Example 2:

Input: s = "a"
Output: 0

Example 3:

Input: s = "ab"
Output: 1

 

Constraints:

## Solution(Python) ```Python class Solution: def minCut(self, s: str) -> int: n = len(s) @cache def isPlaindrome(i,j): if i >= j: return True if s[i] != s[j]: return False return isPlaindrome(i+1,j-1) @cache def dfs(i): if i == n: return 0 res = float('inf') for j in range(i,n): if isPlaindrome(i,j): res = min(res, 1+dfs(j+1)) return res return dfs(0) - 1 ```