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

2023-08-20力扣今日二题

链接:

1312. 让字符串成为回文串的最少插入次数

题意:

如题

解:

动态规划,枚举回文串中点并递增回文串长度

初始状态若L==R则单个字符为中点,需要添加0个字符成为回文串;若L+1==R则如果S[L]==S[R]则需要添加0个字符成为回文串,否则添加1个字符(选其一但是并不需要知道加的是那个)

状态转移:

如果S[L]!=S[R]DP[L][R] == min(dp[i + 1][j] + 1, dp[i][j - 1] + 1, dp[i + 1][j - 1]+1),但是dp[i + 1][j - 1]+1其实至少等价于其中之一,比如abc需要添加a和c变成acbca或cabac,那么ab和bc都为1,abc+2==(ab+1)+1==(bc+1)+1;或者aac需要添加c,ac需要添加1,aa需要添加0,则aac+1==(aa)+1<=(ac+1)+1

如果s[L]==S[R],则DP[L][R]=min(DP[L][R],DP[L+1][R-1])

实际代码:

#include<bits/stdc++.h>
using namespace std;
int minInsertions(string s)
{int lg=s.size();vector<vector<int>> dp(lg,vector<int>(lg,0x3f3f3f3f));for(int i=0;i<lg;i++) dp[i][i]=0;for(int t=1;t<lg;t++)//递增推导长度 {for(int i=0;i+t<lg;i++)//递增起点 {if(t==1){if(s[i]==s[i+t]) dp[i][i+t]=0;else dp[i][i+t]=1;}else{dp[i][i+t]=min(dp[i][i+t-1]+1,dp[i+1][i+t]+1);if(s[i]==s[i+t]) dp[i][i+t]=min(dp[i][i+t],dp[i+1][i+t-1]);}}}return dp[0][lg-1];
}
int main()
{string s;cin>>s;int ans=minInsertions(s);cout<<ans<<endl;return 0; 
}

限制:

  • 1 <= s.length <= 500
  • s 中所有字符都是小写字母。
http://www.lryc.cn/news/133141.html

相关文章:

  • 【地理专题】2023年最新全国A级景区数
  • Elasticsearch实战(一):Springboot实现Elasticsearch统一检索功能
  • 更改计算机睡眠时间
  • Matplotlib数据可视化(一)
  • LLM提示词工程和提示词工程师Prompting and prompt engineering
  • Python开发环境(Visual Studio Code、Anaconda、PyInstaller、Enigma Virtual Box)
  • Unreal Engine 测试总结
  • Air780EG —— 合宙4G定位解决方案
  • 【算法刷题之数组篇(2)】
  • chromedriver.exe 的所有版本下载地址
  • C++ 网络编程项目fastDFS分布式文件系统(四)-fastCGI项目相关技术以及linux搜狗输入法相关问题。
  • 【HarmonyOS】服务卡片 API6 JSUI跳转不同页面
  • 【linux】debian10安装vim
  • 文件同步工具rsync
  • 【嵌入式开发 Linux 常用命令系列 12 -- linux 下 log 输出重定向 详细介绍 】
  • gin中关于参数注入问题
  • 记录首次面试2023-08-18
  • 【Apollo学习笔记】——规划模块TASK之LANE_CHANGE_DECIDER
  • rabbitmq的死信队列
  • 利用网络对拷工具进行系统安装与恢复
  • opencv-python使用鼠标点击图片显示该点坐标和像素值IPM逆透视变换车道线二值化处理
  • AIGC绘画:kaggle部署stable diffusion项目绘画
  • 微服务概述-7
  • 十二、Linux如何修改文件/文件夹所属用户or用户组?chown命令
  • 企业百家号蓝V认证后,百度营销基木鱼落地页如何嵌入百家号中
  • Redis缓存读写策略(三种)数据结构(5+3)
  • 计算机竞赛 Yolov安全帽佩戴检测 危险区域进入检测 - 深度学习 opencv
  • 使用python向窗口发送鼠标点击命令
  • C++11并发与多线程笔记(6) unique_lock(类模板)
  • 计算机网络——OSI与TCP/IP各层的结构与功能,都有哪些协议?