动态规划之变成回文的最小添加次数

目录

一.让字符串变成回文的最少插入次数???

二.让字符串变成回文的最少插入次数并返回一个结果???


一.让字符串变成回文的最少插入次数

1.对应letecode链接:

1312. 让字符串成为回文串的最少插入次数 - 力扣(LeetCode)

2.题目描述:

3.解题思路:

方法一:暴力递归

对应这种回文串问题了一般都是这个范围上的尝试模型,一般都考虑开头和结尾的情况怎么搞:下面我们来分析可能性

注意:递归含义是字符串从[L…R]范围上变成回文字符串的最小插入代价

可能性一:以abcd为例

对应这个字符串我们发现它的开头和结尾不相等,我们可以在a的前面添加一个字符d在加上abc变成回文的最小插入次数。

可能性二:在d的后面添加一个字符a:

可能性3:开头和结尾相等:

对应代码:

class Solution {
public:
     
    int minInsertions(string s) {
   
           return process(s,0,s.size()-1);

    }
    //递归含义字符串str从[L.....R]范围变成回文串的最小代价
    int process(const string&str,int L,int R)
   {
      if(L==R)//只有一个字符必然是回文
      {
          return 0;
      }
      if(L==R-1)//两个字符如果相等不需要插入不等插入一个即可
      {
          return st
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值