当前位置: 首页> 游戏> 手游 > 深圳企业网站制作制作_石家庄网站建设咨询_网站推广排名收费_百度文库首页

深圳企业网站制作制作_石家庄网站建设咨询_网站推广排名收费_百度文库首页

时间:2025/7/13 9:23:47来源:https://blog.csdn.net/taoyong001/article/details/145543313 浏览次数:0次
深圳企业网站制作制作_石家庄网站建设咨询_网站推广排名收费_百度文库首页
  • 如果按照正常想法,根据题目要求来定义一个一维数组来记录递推关系,会发现根本找不到可以递推的关系
  • 所以要考虑其它方式来定义递归数组
  • 动规五部曲
    • dp[i][j]表示子串以i开始以j结束是回文串
    • 递推公式:
      • if (s[i] == s[j])会有三种情况与之对应
        • i == j情况下百分百是回文串
        • i != j如果位置仅相差1(说明是相邻的)
        • 如果位置相差大于1,是不是回文串是由内部的回文串决定的,即dp[i][j] = dp[i + 1][j - 1]
    • 初始化:数组内容都是false
    • 递推顺序:在递推公式可以必现数组中某一个位置值是由左下方元素推导出来的,所以遍历顺序是有一个方向上倒序推导过来的
class Solution {
public:int countSubstrings(string s) {int len = s.size(), result = 0;std::vector<std::vector<bool>> dp(len, std::vector<bool>(len, false));for (int i = len - 1; i >= 0; --i) {for (int j = i; j < len; ++j) {if (s[i] == s[j]) {if (j - i <= 1) {dp[i][j] = true;++result;} else if (dp[i + 1][j - 1]) {dp[i][j] = true;++result;}}}}return result;}
};
  • 代码神奇,思路神奇,解法神奇,三奇
  • 汇总
关键字:深圳企业网站制作制作_石家庄网站建设咨询_网站推广排名收费_百度文库首页

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: