当前位置: 首页 > news >正文

力扣132. 分割回文串 II

力扣132. 分割回文串 II

题目

在这里插入图片描述

题目解析及思路

题目要求返回将s切割成若干回文串的最少切割次数

对于子串s[j...i],若为回文串,则问题变为求s[0...j]的最少切割次数

因此可以考虑动态规划

对于问题s[j...i]是否为回文串,若s[i] == s[j]则问题变成s[j+1...i-1]是否为回文串

因此也可以考虑动态规划

代码

class Solution {
public:
    int minCut(string s) {
        int n = s.size();
        vector<int> f(n+1,INT_MAX);
        vector<vector<bool>> isPalindrome(n, vector<bool>(n, false));
		
        //倒着遍历i
        //子问题isPalindrome[i + 1][j - 1]已经更新过
        for (int i = n - 1; i >= 0; --i) {
            for (int j = i; j < n; ++j) {
                if (s[i] == s[j] && (j - i < 2 || isPalindrome[i + 1][j - 1])) {
                    isPalindrome[i][j] = true;
                }
            }
        }
        //试出来的
        f[0] = -1;
        //动态规划
        for(int i=0;i<n;i++){
            for(int j=i;j>=0;j--){
                if(f[j] < INT_MAX && isPalindrome[j][i]){
                    f[i+1] = min(f[i+1],f[j] + 1);
                }
            }
        }
        return f[n];
    }
};

相关文章:

  • 传统工厂转型实录:1套WMS系统如何砍掉40%仓储成本
  • 信奥赛CSP-J复赛集训(DP专题)(16):P1203 [USACO1.1] 坏掉的项链 Broken Necklace
  • 【Qt QML】Loader动态加载组件
  • 【SegRNN 源码理解】图示理解 forward的过程
  • Kanna 与 Swift:结合使用提升网络请求效率
  • vue3,Element Plus中隐藏树el-tree滚动条
  • AIP-160 过滤
  • 采用OllamaSharp实现.NET快速对接deepseek实现聊天、模型管理、流式响应等功能
  • 统计作业提交情况python脚本
  • css错峰布局/瀑布流样式(类似于快手样式)
  • JVM参数调整
  • SAP的错误:General error 339 invalid number
  • 文献学习——考虑混合储能系统选择的基于改进蜂群算法的热电联产微网多目标经济优化调度
  • 攻防世界WEB(新手模式)19-file_include
  • Hadoop、Hive、Spark的关系
  • 盛铂科技 SLMF315频率综合器200MHz至15GHz 国产频综模块
  • 2024华为OD机试真题-磁盘容量排序算法(C++)-E卷B卷-100分
  • linux 使用阿里云盘 阿里网盘
  • 我的两个医学数据分析技术思路
  • UI自动化:利用百度ocr识别解决图形验证码登录问题
  • wordpress做文字站/王通seo赚钱培训
  • 个人做网站 优帮云/优化百度seo技术搜索引擎
  • 编程开发/网站优化排名哪家好
  • 做招聘网站的需求分析/关键词代发包收录
  • 有用织梦做的大网站吗/做市场推广应该掌握什么技巧
  • 网站被主流搜索引擎收录的网页数量是多少/网店运营