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

乌鲁木齐做网站哪家好长沙百家号seo

乌鲁木齐做网站哪家好,长沙百家号seo,手机网站开发 和 网页,qq音乐如何做mp3下载网站文章目录 动态规划(回文串问题)1. 回文子串2. 最长回文子串3. 回文串分割 IV4. 分割回文串 ||5. 最长回文子序列6. 让字符串成为回文串的最小插入次数 动态规划(回文串问题) 1. 回文子串 题目链接 状态表示 f[i][j]表示 i 到 j …

文章目录

  • 动态规划(回文串问题)
    • 1. 回文子串
    • 2. 最长回文子串
    • 3. 回文串分割 IV
    • 4. 分割回文串 ||
    • 5. 最长回文子序列
    • 6. 让字符串成为回文串的最小插入次数

动态规划(回文串问题)

1. 回文子串

题目链接

  1. 状态表示

    f[i][j]表示 i 到 j 的子串当中是否是回文

  2. 状态转移方程

    image-20230814152744276

  3. 初始化

    最初所有的内容都是0即可

  4. 填表

    因为 i j 需要用 i + 1 来初始化,所以这个时候需要从下往上填表

  5. 返回值

    返回整个dp 表里true 的数目就可以

AC代码:

class Solution 
{
public: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. 最长回文子串

题目链接

如果需要求一个字符串当中的最长的回文子串,需要将所有的回文子串找到,然后再所有的回文子串里面找打一个最长的就可以了

可以参考上一个题目回文子串

AC代码:

class Solution 
{
public:string longestPalindrome(string s) {// 找到所有的回文子串int n = s.size();vector<vector<bool>> dp(n, vector<bool>(n));int begin = 0, len = 1;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){begin = i;len = j - i + 1;}}}return s.substr(begin, len);}
};

3. 回文串分割 IV

题目链接

分析:如果暴力解题的话,i 和 j 可以把整个字符串分为3份,只需要遍历所有可能分为3份的情况直接判断是否都是回文串不就可以了。但是判断回文串需要花费时间,可以使用上面两道题的方法来判断是不是回文串

AC代码:

class Solution 
{
public: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;}
};

4. 分割回文串 ||

题目链接

  1. 状态表示

    dp[i]表示0 到 i 之间,可以把所有子串都分割为回文串的最小次数

  2. 状态转移方程

    w30l7zd85k-1692000661157.png

  3. 初始化

    所需初始位最大即可

  4. 填表

    从左到右

  5. 返回值

AC代码:

class Solution 
{
public:int minCut(string s) {int n = s.size();vector<vector<bool>> isPal(n, vector<bool>(n));for (int i = n - 1; i >= 0; i--){for (int j = i; j < n; j++){if (s[i] == s[j]) isPal[i][j] = i + 1 < j ? isPal[i + 1][j - 1] : true;}}vector<int> dp(n, INT_MAX);for (int i = 0; i < n; i++){if (isPal[0][i]) dp[i] = 0;else {for (int j = 1; j <= i; j++){if (isPal[j][i]) dp[i] = min(dp[i], dp[j - 1] + 1);}}}return dp[n - 1];}
};

5. 最长回文子序列

题目链接

  1. 状态表示

    之前以某个位置为结尾来分析状态表示,如果dp[i]表示到i位置的最长回文子序列的长度来推导状态转移方程,只有长度是分析不出来状态转移方程。

    dp[i][j]表示i j 这个区间内,最长的回文子序列的长度

  2. 状态转移方程

    l1dd6ftxae-1692070247057.png

  3. 初始化

    无需初始化

  4. 填表

    因为需要用到 后面的值,所以填表需要从下到上,从左到右

  5. 返回值

AC代码:

class Solution 
{
public:int longestPalindromeSubseq(string s) {int n = s.size();vector<vector<int>> dp(n, vector<int>(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 ==j ? 1 : dp[i + 1][j - 1] + 2;}else dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);}}return dp[0][n - 1];}
};

6. 让字符串成为回文串的最小插入次数

题目链接

  1. 状态表示

    dp[i][j]表示:i 到 j 这个区间内,成为回文串的最小插入次数

  2. 状态转移方程

    ygc0i7wp4n-1692071284065.png

  3. 初始化

  4. 填表

    从下往上,从左到右

  5. 返回值

AC代码:

class Solution 
{
public:int minInsertions(string s) {int n = s.size();vector<vector<int>> dp(n, vector<int>(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] : 0;else dp[i][j] = min(dp[i + 1][j], dp[i][j - 1]) + 1;}}return dp[0][n - 1];}
};
http://www.hkea.cn/news/991203/

相关文章:

  • 秭归网站建设网站seo优化心得
  • wordpress电影网站模板seo运营
  • 公司注册网上核名业务如何终止网站排名优化怎么做
  • 网站建设伍金手指下拉2网上推广平台
  • 沧州网站建设公司翼马爱情链接
  • 计算机学了出来干嘛免费优化推广网站的软件
  • 宁波网站建设优化湖南seo优化按天付费
  • 门户网站手机版google官网入口
  • 深圳市工程建设交易服务中心网站软文什么意思
  • 大型网架加工厂成都网站建设方案优化
  • 导航网站的广告怎么做的千锋教育官方网
  • etc网站开发票网站制作软件免费下载
  • 上海seo网站设计2022十大网络营销案例
  • 还有做网站的必要吗网站运营推广方案
  • 企业营销型网站建设厂家品牌搜索引擎服务优化
  • 学校网站建设计划怎么成为百度推广代理商
  • 普陀网站开发培训学校seo快速优化
  • 建一个商城网站多少钱免费的网站推广软件
  • 手机网站解决方案看网站搜什么关键词
  • 顺企网江西网站建设宜昌今日头条新闻
  • 坪山网站建设行业现状网页设计与制作代码成品
  • 网站建设需求文档模板下载学大教育一对一收费价格表
  • 小型网站怎样优化百度首页官网
  • 网站开发与iso9001关系百度上做推广怎么做
  • wordpress怎么设置导航镇江seo
  • 番禺建设网站服务软文写作网站
  • 有哪些专做自然风景图片的网站石首seo排名
  • 移动网站虚拟主机seo 排名 优化
  • 专业网站建设课程网站推广优化方式
  • 适合站长做的网站信息流广告投放工作内容