【问题描述】
回文词是一种对称的字符串——也就是说,一个回文词,从左到右读和从右到左读得到的结果是一样
的。任意给定一个字符串,通过插入若干字符,都可以变成一个回文词。你的任务是写一个程序,求出将
给定字符串变成回文词所需插入的最少字符数。
比如字符串“ Ab3bd ”,在插入两个字符后可以变成一个回文词(“ dAb3bAd ”或“ Adb3bdA ”)。然而,
插入两个以下的字符无法使它变成一个回文词。
【输入文件】
第一行包含一个整数 N ,表示给定字符串的长度, 3<=N<=5000
第二行是一个长度为 N 的字符串,字符串由大小写字母和数字构成。
【输出文件】
一个整数,表示需要插入的最少字符数。
【输入样例】
5
Ab3bd
【输出样例】

2

思路:

考虑都有哪些决策,用opt[i][j]表示序列[i...j]变成回文词,所需要插入的最少字符数。

那么可以知道如果s[i] == s[j]的情况下opt[i][j] = opt[i+1][j-1]

而如果s[i] != s[j],那么在s[i..j]的右面添加一个s[i],或者是在左边添加一个s[j],那么再把两边去除掉,就转化到opt[i+1][j-1]了

所以状态转移方程就非常的显然了

if s[i] == s[j]:

opt[i][j] = min(opt[i+1][j-1],opt[i][j-1]+1,opt[i+1][j]+1)

else:

opt[i][j] = min(opt[i][j-1]+1,opt[i+1][j]+1)

动态规划训练5 [回文词]相关推荐

  1. CSU 1328: 近似回文词

    省赛的A题...现场都没什么人做... 其实就一暴力水题......坑死了... 1328: 近似回文词 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: ...

  2. CSU 1328 近似回文词【最长回文字符串(三种方法)】

    输入一行文本,输出最长近似回文词连续子串.所谓近似回文词是指满足以下条件的字符串: 1. S以字母开头,字母结尾 2. a(S)和b(S)最多有2k个位置不同,其中a(S)是S删除所有非字母字符并且把 ...

  3. 【DP】回文词 (ssl 1813)

    回文词 ssl 1813 题目大意: 给出一个式子,最少要加多少个字符才能让这个式子是一个"回文词" 原题: 题目描述 回文词是一种对称的字符串,也就是说:一个回文词,从左向右读和 ...

  4. Python利用双端队列判断回文词

    #默认右端为队首 class Deque:def __init__(self):self.items = []def isEmpty(self):return self.items == []def ...

  5. Python双端队列之回文词判定

    双端队列(Deque):由一系列有序的元素组织而成,元素可以从队首或队尾插入.删除. Python自带Deque模块,使用时需引用from collections import deque. 回文词: ...

  6. 队列(queue)与双端队列(deque)—Python实现方法及回文词应用

    队列 Queue 抽象数据类型Queue:一个有次序的数据集合,数据项仅从 尾(rear) 端添加,且仅从 首(front) 端移除,具有 "FIFO" 的特点. 需要实现的操作: ...

  7. 动态数组怎么定义_动态规划最长回文子序列

    动态规划|最长回文子序列 今天一起来学习Leetcode第 516 题:最长回文子序列. 题目描述 题目分析 首先回文字符串指的是形如"a","aa",''ab ...

  8. 动态规划-最长回文子串

    输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案. 示例 2:输入: "cbbd" 输出 ...

  9. 算法训练_ALGO14_回文数

    问题描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制数 ...

最新文章

  1. 求助啊,被STM32的CAN折磨的疯了
  2. 浅谈python的深浅拷贝
  3. php被替代,php 替代被弃用函数的
  4. UnrealEngine4 PBR Shading Model 概述
  5. 设计模式的征途—1.单例(Singleton)模式
  6. MySql类似Oracle的dual虚拟表
  7. python的zip函数_python的zip函数
  8. 利用mergeAttributes设置name属性
  9. 【PID优化】基于matlab粒子群和遗传算法PID控制器优化设计【含Matlab源码 1311期】
  10. ubuntu虚拟机传文件到当前主机
  11. IPguard文档控制策略
  12. 装饰器python与python装饰器
  13. 对接海康威视ehome踩过的坑总结
  14. 国内外对于GaN中Fe相关点缺陷结构的局域特性的研究进展
  15. 做销售,好心态才有好业绩
  16. DFS 简单的剪枝和状态压缩 海贼王之伟大航路
  17. Linux ps指令介绍
  18. 【MySQL 8.0 OCP 1Z0-908认证考试】题库精讲--第五讲mysqlbinlog与mysqldump(下)
  19. 计算机体系结构 专业排名,计算机系统专业及其排名介绍 加州伯克利排名第一...
  20. 管理学计算机要求,[管理学]计算机第一章.ppt

热门文章

  1. Leetcode 数据结构与算法题解大全——目录(推荐收藏,持续更新)
  2. [mybatis]动态sql_sql_抽取可重用的sql片段
  3. [蓝桥杯2018初赛]全球变暖-dfs,bfs,连通块
  4. mysql outfile 变量_转mysql dumpfile 与 outfile 函数的区别
  5. python输入数据爬取_python根据用户需求输入想爬取的内容及页数爬取图片方法详解...
  6. wordList04
  7. CSS padding margin border属性讲解
  8. L. Continuous Intervals(单调栈 + 线段树 + 思维)
  9. string(STL)
  10. P2375 [NOI2014] 动物园 kmp fail指针/倍增