这题用我能想到的dfs一些果然和我想的一样超时了
题解:DP
实际上是两个dp:p[i][j]表示字符串s的i到j位置是否为回文,dp[i]表示字符串s开头到i位置最少分割数
第一个for循环更新dp[i]为i(因为最坏的情况是把字符串全部切成字符),第二个循环表示尝试从0至i的各个位置切开,即将字符串分成s[0:j] and s[j+1:i],当s[i:j]是回文时,更新dp的值dp[j-1]+1(dp[j-1]表示j之前最少切几刀是回文,且p[j][i]是回文,则dp[j-1]+1)
Shengjianjun 博主文章分类:LeetCode AC代码 ©著作权
这题用我能想到的dfs一些果然和我想的一样超时了
题解:DP
实际上是两个dp:p[i][j]表示字符串s的i到j位置是否为回文,dp[i]表示字符串s开头到i位置最少分割数
第一个for循环更新dp[i]为i(因为最坏的情况是把字符串全部切成字符),第二个循环表示尝试从0至i的各个位置切开,即将字符串分成s[0:j] and s[j+1:i],当s[i:j]是回文时,更新dp的值dp[j-1]+1(dp[j-1]表示j之前最少切几刀是回文,且p[j][i]是回文,则dp[j-1]+1)
下一篇:135. Candy
LeetCode: 132. Palindrome Partitioning II
难度:90. 这道题跟Palindrome Partitioning非常类似,区别就是不需要返回所有满足条件的结果,而只是返回最小的切割数量就可以。做过Word Break的朋友可能马上就会想到,其实两个问题非常类似,当我们要返回所有结果(Palindrome Partitioning和Word B
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M