
伪代码:
FIND-MIN-CUT(s)
1. i←0, j←0
2. fori<n or j<n
3. C[i][j]← 0
4. i←1, j←0
5. fori<n
6. forj<n-i+1
7. K=i+j-1
8. If n==1
9. Then C[j][k]=true
10. Elseif n==2
11. Then C[j][k]=s[j:k]是否为回文
12. ElseC[j][k]=s[j][k]是否为回文&&C[j+1][k-1]
13. If C[j][k] then flag[j][k]=0
14. Else
15. For(m←j)<k
16. Min=flag[j][m]+flag[m+1][k]+1
17. return flag[0][n-1]

求字符串划分为回文子串的最小次数

本文介绍了FIND-MIN-CUT算法,用于将字符串s划分为回文子串的最小次数。通过双层循环,检查所有子串是否为回文,并使用动态规划记录结果。当字符串长度为1或2时,直接判断;否则,检查当前子串是否为回文并结合子串中间部分的回文情况。若为回文,标记最小划分次数为0,否则遍历子串并计算最小划分次数。
最低0.47元/天 解锁文章
418

被折叠的 条评论
为什么被折叠?



