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

重庆忠县网站建设公司哪家好百度开放平台登录

重庆忠县网站建设公司哪家好,百度开放平台登录,网站开发服务费合同范本,dw怎么做音乐网站目录 0.原理讲解1.回文子串1.题目链接2.算法原理详解3.代码实现 2.最长回文子串1.题目链接3.代码实现 3.分割回文串 IV1.题目链接2.算法原理详解3.代码实现 0.原理讲解 动态规划能够将所有的子串是否是回文的信息,保存在dp表里面状态表示一般经验:以[i,…

目录

  • 0.原理讲解
  • 1.回文子串
    • 1.题目链接
    • 2.算法原理详解
    • 3.代码实现
  • 2.最长回文子串
    • 1.题目链接
    • 3.代码实现
  • 3.分割回文串 IV
    • 1.题目链接
    • 2.算法原理详解
    • 3.代码实现


0.原理讲解

  • 动态规划能够将所有的子串是否是回文的信息,保存在dp表里面
  • 状态表示一般经验:以[i, j]为区间,分析问题

1.回文子串

1.题目链接

  • 回文子串

2.算法原理详解

  • 思路
    • 确定状态表示 -> dp[i][j]的含义

      • s字符串[i, j]的子串,是否是回文串
    • 推导状态转移方程
      请添加图片描述

    • 初始化:无需初始化

    • 确定填表顺序:从下往上

    • 确定返回值:dp表里true的个数


3.代码实现

int countSubstrings(string s) 
{int n = s.size();vector<vector<bool>> dp(n, vector<bool>(n));int ret = 0;for(int i = n - 1; i >= 0; i--){for(int j = i; j < n; j++){if(s[i] == s[j]){dp[i][j] = i + 1 < j ? dp[i + 1][j - 1] : true;if(dp[i][j]){ret++;}}}}return ret;
}

2.最长回文子串

1.题目链接

  • 最长回文子串

  • 按照回文子串的思路解决即可,只不过判断最长时,利用起始下标j - i + 1

  • 思路

    • 确定状态表示 -> dp[i][j]的含义

      • s字符串[i, j]的子串,是否是回文串
    • 推导状态转移方程
      请添加图片描述

    • 初始化:无需初始化

    • 确定填表顺序:从下往上

    • 确定返回值:dp表里值为true的情况下,长度最大的字串的起始位置以及长度


3.代码实现

string longestPalindrome(string s) 
{int n = s.size();vector<vector<bool>> dp(n, vector<bool>(n));int len = 1, begin = 0;for(int i = n - 1; i >= 0; i--){for(int j = i; j < n; j++){if(s[i] == s[j]){dp[i][j] = i + 1 < j ? dp[i + 1][j - 1] : true;if(dp[i][j] && j - i + 1 > len){len = j - i + 1;begin = i;}}}}return s.substr(begin, len);
}

3.分割回文串 IV

1.题目链接

  • 分割回文串 IV

2.算法原理详解

  • 思路梳理

    • 本题思路经处理后,就可以划归为回文子串
    • 可以将本题分为三个区间,其中中间区间就是一个回文子串的始末
    • 先将字符串内所有子串是否是回文串都判断出来,再挨个判断三个区间是否是回文串
      请添加图片描述
  • 预处理:将字符串内所有子串是否是回文串都判断出来

    • 确定状态表示 -> dp[i][j]的含义

      • s字符串[i, j]的子串,是否是回文串
    • 推导状态转移方程
      请添加图片描述

    • 初始化:无需初始化

    • 确定填表顺序:从下往上

  • 结果处理:挨个判断三个区间是否是回文串


3.代码实现

bool checkPartitioning(string s) 
{// 预处理:处理回文信息int n = s.size();vector<vector<bool>> dp(n, vector<bool>(n));for(int i = n - 1; i >= 0; i--){for(int j = i; j < n; j++){if(s[i] == s[j]){dp[i][j] = i + 1 < j ? dp[i + 1][j - 1] : true;}}}// 判断三区间,枚举中间区间for(int i = 1; i < n - 1; i++){for(int j = i; j < n - 1; j++){if(dp[0][i - 1] && dp[i][j] && dp[j + 1][n - 1]){return true;}}}return false;
}
http://www.dtcms.com/wzjs/331923.html

相关文章:

  • 手机网站报价单模板公司想建个网站怎么弄
  • 铁岭 开原网站建设优速网站建设优化seo
  • 怎么注册免费网站搜一搜站长工具
  • 网站为什么吸引人seo职业规划
  • 网站开发知识产权归属百度发广告怎么发
  • 做爰全过程网站搜索引擎优化技巧
  • 做资源共享网站太极seo
  • 专业b2c电商网站制作上海企业网站seo
  • 国内外网站开发的现状友情链接代码美化
  • 租空间开网站网络营销外包
  • 丽江电子商务网站建设百度竞价推广流程
  • 网站开发公司关键词排名优化公司推荐
  • 娃哈哈网络营销策划方案优化英语
  • 官网网站建设公司百度排行榜前十名
  • 活动营销推广方案快速排名优化
  • 厦门商务网站建设杭州优化公司在线留言
  • 哪些cms做同城网站比较好网站广告收费标准
  • 衡水网站建设供应商网站模板搭建
  • 怎样做网站不花钱网络推广怎么找客户资源
  • 合伙做网站今日足球比赛分析推荐
  • 提供网站制作公司螺蛳粉营销策划方案
  • 西宁做网站制作的公司产品网站推广
  • 论述网站开发建设的一般流程搜索
  • 番禺做网站网络营销渠道策略有哪些
  • 不会代码 怎么做网站网站建设公司哪个好呀
  • 做网站设计和推广广州推广排名
  • 网站内移动的图片怎么做的百度快照投诉中心
  • 建设摩托车官网官方网站佛山网站建设维护
  • 做婚恋网站的思路网站设计与实现毕业设计
  • 有没有专门做胜负彩的网站自媒体运营主要做什么