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

题解:洛谷 P1435 [IOI 2000] 回文字串

【题目来源】

洛谷:P1435 [IOI 2000] 回文字串 - 洛谷

【题目描述】

回文词是一种对称的字符串。任意给定一个字符串,通过插入若干字符,都可以变成回文词。此题的任务是,求出将给定字符串变成回文词所需要插入的最少字符数。

比如 \(Ab3bd\) 插入 \(2\) 个字符后可以变成回文词 \(dAb3bAd\)\(Adb3bdA\),但是插入少于 \(2\) 个的字符无法变成回文词。

注意:此问题区分大小写。

【输入】

输入共一行,一个字符串。

【输出】

有且只有一个整数,即最少插入字符数。

【输入样例】

Ab3bd

【输出样例】

2

【解题思路】

image

【代码详解】

《洛谷 P1435 回文子串》 #动态规划,dp# #IOI# #2000#

#include <bits/stdc++.h>
using namespace std;const int N = 1005;  // 定义最大字符串长度string s1, s2;        // s1: 原始字符串,s2: 反转后的字符串
int dp[N][N];         // DP数组,用于存储最长公共子序列长度int main()
{// 输入原始字符串cin >> s2;// 复制原始字符串并反转string s1 = s2;reverse(s2.begin(), s2.end());// 在字符串前添加空格,使索引从1开始s1 = " " + s1;s2 = " " + s2;int len = s1.size();  // 获取字符串长度(包含前导空格)// 动态规划计算最长公共子序列for (int i = 1; i <= len; i++){for (int j = 1; j <= len; j++){if (s1[i] == s2[j]){// 字符匹配,长度加1dp[i][j] = dp[i - 1][j - 1] + 1;}else{// 字符不匹配,取上方或左方的最大值dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);}}}// 输出需要插入的最少字符数(总长度减去最长回文子序列长度)cout << len - dp[len][len];return 0;
}

【运行结果】

Ab3db
2
http://www.jsqmd.com/news/397105/

相关文章:

  • Java 时间类(中):JDK8 全新时间 API 详细教程
  • 降AI率常见误区TOP10:别再走弯路了!2026年最全避坑指南
  • <P5464 缩小社交圈>
  • 支持实时预览与高质量导出的专业封面设计工具,完全免费:西瓜封面设计
  • 文科论文降AI比理工科更难?文科生专属降AI方案全解析
  • 题解:洛谷 P1541 [NOIP 2010 提高组] 乌龟棋
  • PEM 电解槽直流道两相流模拟:从建模到求解
  • 手把手教你使用vscode开发stm32!
  • 题解:洛谷 P1854 [IOI 1999] 花店橱窗布置
  • 题解:洛谷 P4310 绝世好题
  • 中华民族音乐传承出版工程服务平台界面设计
  • 用DeepSeek写的论文怎么降AI率?2026最新实操教程手把手教你
  • 2026毕业季降AI全攻略:从论文写作到最终提交一站式指南
  • 法智学教育软件课件UI设计
  • 【Python】【机器学习】集成算法(随机森林、提升算法)
  • 中小企业全生命周期知识产权管理100问:从初创到成熟,一文读懂核心要点
  • 题解:洛谷 P1004 [NOIP 2000 提高组] 方格取数
  • 基于高频信号的PMSM转矩脉动抑制:一场仿真探索之旅
  • 3分钟搞懂深度学习AI:感知机,AI模仿大脑
  • 题解:洛谷 P2679 [NOIP 2015 提高组] 子串
  • 论文降AI后导师说风格变了怎么办?保持个人写作风格的实用指南
  • 题解:洛谷 P1439 两个排列的最长公共子序列
  • php条件语句(混合php的if语句和js编程)
  • 题解:洛谷 P4933 大师
  • 基于LSTM的共享单车需求预测研究
  • 题解:洛谷 P2285 [HNOI2004] 打鼹鼠
  • 题解:洛谷 P1020 [NOIP 1999 提高组] 导弹拦截
  • 携程任我行礼品卡回收实操步骤 - 京顺回收
  • 研究生开题答辩前如何确保论文AI率合格?导师不会告诉你的实操指南
  • neovim配置python插件支持环境 —— Pynvim 环境搭建 —— Pynvim安装