223 - 132 分割回文串
题目
解答
class Solution:
def minCut(self, s: str) -> int:
min_s = list(range(len(s)))
n = len(s)
dp = [[False]*n for _ in range(n)]
for i in range(n):
for j in range(i+1):
if s[i] == s[j] and (i-j < 2 or dp[j+1][i-1]):
dp[j][i] = True
if j == 0:
min_s[i] = 0
else:
min_s[i] = min(min_s[i], min_s[j-1]+1)
return min_s[-1]Last updated