# 分割回文串 II

给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文。

返回符合要求的 最少分割次数

 

示例 1:

输入:s = "aab"
输出:1
解释:只需一次分割就可将 s 分割成 ["aa","b"] 这样两个回文子串。

示例 2:

输入:s = "a"
输出:0

示例 3:

输入:s = "ab"
输出:1

 

提示:

## template ```python class Solution: def minCut(self, s): size = len(s) is_palindrome = [[False] * size for _ in range(size)] for r in range(size): for l in range(r, -1, -1): if s[l] == s[r] and (r - l <= 2 or is_palindrome[l + 1][r - 1]): is_palindrome[l][r] = True dp = [i for i in range(size)] for i in range(1, size): if is_palindrome[0][i]: dp[i] = 0 else: dp[i] = min(dp[j] + 1 for j in range(i) if is_palindrome[j + 1][i]) return dp[-1] ``` ## 答案 ```python ``` ## 选项 ### A ```python ``` ### B ```python ``` ### C ```python ```