1.题目详情
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文。
返回符合要求的 最少分割次数 。
2.题目详情
今天的每日一题又没做出来,看了题解才理解的。
动态规划
3.代码实现
class Solution(object):
def minCut(self, s):
"""
:type s: str
:rtype: int
"""
N = len(s)
dp = [N] * N
for i in range(N):
if self.isPalindrome(s[0 : i + 1]):
dp[i] = 0
continue
for j in range(i):
if self.isPalindrome(s[j + 1 : i + 1]):
dp[i] = min(dp[i], dp[j] + 1)
return dp[N - 1]
def isPalindrome(self, s):
return s == s[::-1]
4.知识点
–