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

广西网站建设价格多少最新消息

广西网站建设价格多少,最新消息,石家庄房产网新楼盘在售楼盘,一个公司做两个网站文章目录 动态规划(回文串问题)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.shuangfujiaoyu.com/news/60828.html

相关文章:

  • 做网站如何赢利的经典的软文广告
  • 智效云seo上海搜索优化推广哪家强
  • 华强北ic网站建设北京搜索优化推广公司
  • 东莞网络营销网络培训学校seo多久可以学会
  • 网站建设 顺德网络seo优化
  • 现在还有病毒感染吗引擎seo优
  • 网站admin目录名怎么改网络推广企业
  • 如何查看一个网站是用什么cms做的软件培训机构排名
  • 现在asp做网站东莞市网站建设
  • 上海由多少家网站建设公司佛山百度seo点击软件
  • wordpress建站模板重庆网络推广公司
  • 雅虎网站收录提交入口公众号开发网站公司
  • 网站建设合同法网络营销中的seo是指
  • 校园网站模版黄页88网推广服务
  • 微微网站建设企业营销战略
  • 网站的平面设计图用ps做河南seo网站多少钱
  • h56wcom什么网站seo程序
  • 腾讯云服务器centos做静态网站做营销型网站哪家好
  • 在线制作二维码网站怎么制作链接网页
  • 网站文章内链怎么做互动营销的概念
  • 昆明网站建设锐网网页搜索排名提升
  • 前端代码练习网站网络营销岗位职责和任职要求
  • 做播放器电影网站需要多少钱产品推广平台排行榜
  • 智慧团建密码格式网站如何做优化推广
  • 展览公司网站模板seo诊断a5
  • 东莞网站设计找哪里南宁网
  • 如何利用互联网推广产品seo可以从哪些方面优化
  • 抚顺网站制作网站seo属于什么专业
  • 涡阳网站建设哪家好seo搜索引擎优化书籍
  • 企业网站分析直通车关键词怎么选 选几个