博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P1435 回文字串
阅读量:5291 次
发布时间:2019-06-14

本文共 861 字,大约阅读时间需要 2 分钟。

题目背景

IOI2000第一题

题目描述

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

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

注:此问题区分大小写

输入格式

一个字符串(0<strlen<=1000)

输出格式

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

输入输出样例

输入 #1复制
Ab3bd
输出 #1复制
2
#include
#include
#include
#include
#include
#include
using namespace std;int n,dp[5001][5001];char str1[5001],str2[5001];int main(){ scanf("%s",str1+1); n=strlen(str1+1); for(int i=1;i<=n;i++){ str2[i]=str1[n-i+1]; } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(str1[i]==str2[j]){ dp[i][j]=dp[i-1][j-1]+1; } else{ dp[i][j]=max(dp[i-1][j],dp[i][j-1]); } } } printf("%d",n-dp[n][n]); return 0;}

  

转载于:https://www.cnblogs.com/xiongchongwen/p/11261588.html

你可能感兴趣的文章
第二周
查看>>
断言简介
查看>>
Node.js 入门:Express + Mongoose 基础使用
查看>>
plsql使用,为什么可以能看见其他用户的表
查看>>
一步步教你轻松学奇异值分解SVD降维算法
查看>>
Scripting Java #3:Groovy与invokedynamic
查看>>
2014-04-21-阿里巴巴暑期实习-后台研发-二面经验
查看>>
数据结构中线性表的基本操作-合并两个线性表-依照元素升序排列
查看>>
使用pager进行分页
查看>>
吐医疗器械研发可配置性需求的槽点
查看>>
UVA - 1592 Database
查看>>
机器翻译评价指标 — BLEU算法
查看>>
机器学习基石(9)--Linear Regression
查看>>
Min Stack
查看>>
从LazyPhp说起
查看>>
Fine Uploader文件上传组件
查看>>
Spring Boot与Spring的区别
查看>>
查看linux 之mysql 是否安装的几种方法
查看>>
javascript中的传递参数
查看>>
objective-c overview(二)
查看>>