4122:切割回文
总时间限制: 1000ms 内存限制: 65536kB
描述
阿福最近对回文串产生了非常浓厚的兴趣。

如果一个字符串从左往右看和从右往左看完全相同的话,那么就认为这个串是一个回文串。例如,“abcaacba”是一个回文串,“abcaaba”则不是一个回文串。

阿福现在强迫症发作,看到什么字符串都想要把它变成回文的。阿福可以通过切割字符串,使得切割完之后得到的子串都是回文的。

现在阿福想知道他最少切割多少次就可以达到目的。例如,对于字符串“abaacca”,最少切割一次,就可以得到“aba”和“acca”这两个回文子串。

输入
输入的第一行是一个整数 T (T <= 20) ,表示一共有 T 组数据。
接下来的 T 行,每一行都包含了一个长度不超过的 1000 的字符串,且字符串只包含了小写字母。
输出
对于每组数据,输出一行。该行包含一个整数,表示阿福最少切割的次数,使得切割完得到的子串都是回文的。
样例输入
3
abaacca
abcd
abcba
样例输出
1
3
0
提示
对于第一组样例,阿福最少切割 1 次,将原串切割为“aba”和“acca”两个回文子串。
对于第二组样例,阿福最少切割 3 次,将原串切割为“a”、“b”、“c”、“d”这四个回文子串。
对于第三组样例,阿福不需要切割,原串本身就是一个回文串。

问题链接:Bailian4122 切割回文
问题简述:(略)
问题分析:动态规划问题。
定义状态dp[i]: 前i个字符的最小切割回文,若dp[i]=INF(0x3F3F3F3F,初值)则表示不可完成。
dp[0] = 0
状态转移 dp[i]=min(dp[i],dp[j-1]+1 ) ( 1 < = j < = i 且 S [ i . . j ] 是 回 文 串 )
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* Bailian4122 切割回文 */#include <bits/stdc++.h>using namespace std;const int N = 1000;
char s[N + 1];
int dp[N + 1];bool judge(int l, int r)
{while (l <= r) {if (s[l] != s[r]) return false;l++, r--;}return true;
}int main()
{int t;scanf("%d", &t);while (t--) {scanf("%s", s);memset(dp, 0x3F, sizeof dp);int len = strlen(s);for (int i = 0; i < len; i++)for (int j = 0; j <= i; j++)if (judge(j, i)) {if (j == 0) dp[i] = 0;else dp[i] = min(dp[i], dp[j - 1] + 1);}printf("%d\n", dp[len - 1]);}return 0;
}

Bailian4122 切割回文【DP】相关推荐

  1. 百练 05 切割回文

    百练 05 切割回文 总时间限制: 内存限制: 1000ms 65536kB 描述 阿福最近对回文串产生了非常浓厚的兴趣. 如果一个字符串从左往右看和从右往左看完全相同的话,那么就认为这个串是一个回文 ...

  2. NYOJ 1023 还是回文(DP,花最少费用形成回文串)

    1 /* 2 题意:给出一串字符(全部是小写字母),添加或删除一个字符,都会产生一定的花费. 3 那么,将字符串变成回文串的最小花费是多少呢? 4 5 思路:如果一个字符串增加一个字符 x可以形成一个 ...

  3. js把base64串解析成中文_回文问题终极篇:最小代价构造回文串

    学算法认准 labuladong 东哥带你手把手撕力扣? 点击下方卡片即可搜索? 读完本文,你可以去力扣完成第 1312 题「让字符串成为回文串的最少插入次数」,难度 Hard. 回文串就是正着读反着 ...

  4. leetcode5. 最长回文子串(动态规划)

    给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &qu ...

  5. 2019届vivo秋招笔试题【字符串排序】【链表奇数位正序偶数位逆序】【最长回文子串】

    字符串排序 1.题目描述 请对组字符串进行排序,字符串由大小写字母和数字组成,需要满足以下比较规则 1.长度不同时,长度较短在排前面 2.长度相同时,按照字典顺序排列(AaBb-Zz, 0-9顺序), ...

  6. java 正序a~z_2019届vivo秋招笔试题【字符串排序】【链表奇数位正序偶数位逆序】【最长回文子串】...

    字符串排序 1.题目描述 请对组字符串进行排序,字符串由大小写字母和数字组成,需要满足以下比较规则 1.长度不同时,长度较短在排前面 2.长度相同时,按照字典顺序排列(AaBb-Zz, 0-9顺序), ...

  7. 最长回文子序列java

    给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度. 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列. 示例 1: 输入:s = "b ...

  8. DP之钢管切割,最长回文字符串,最长公共子串

    在做LeetCode第3题的时候,用到了DP,但是自己对DP还是不了解,所以翻开算法导论,开始看动态规划喽,学好动态规划,走遍天下都不怕. 钢管切割 对于一根长n米的钢管,每个长度的价格不一样,对于长 ...

  9. leetcode132. 分割回文串 II(dp)

    给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文. 返回符合要求的 最少分割次数 . 示例 1: 输入:s = "aab" 输出:1 解释:只需一次分割就可将 s ...

最新文章

  1. golang中的指针
  2. ping 出现(DUP)以及连接虚拟机ssh自动断开
  3. 如何读取resources目录下的文件路径(九种方式)
  4. php获取昨日时间段内,PHP 获取 特定时间范围 类
  5. python 内存_一行Python解决内存问题
  6. simulink仿真及代码生成技术入门到精通_Simulink仿真零基础入门到精通实用教学教程 自学全套...
  7. android 设置允许http请求_接口测试第6期:Fiddler设置开始捕获和停止捕获、HTTP报文结构,如何删除请求...
  8. 英特尔预计第12代酷睿H系列处理器将有超过100款设备采用
  9. 过滤特征_万字长文讲解如何做特征工程
  10. 阿里巴巴编码规范java
  11. [java]内部类的总结
  12. idea启动Tomcat控制台乱码但是不报错
  13. Protoc与GRPC的使用
  14. html图片边框的颜色,css图片的边框怎么设置颜色?
  15. 《经济学通识》十一、企业该不该有钱、慈善
  16. 简单普及数字人民币概论、特征、架构介绍
  17. “士兵突击”职场攻略心法
  18. 小帮手打卡系统分析~
  19. ijkplayer 录像 截图功能,支持rtsp rtmp http 流媒体
  20. 如何同时训练左手灵活性和音阶思维

热门文章

  1. 2018-09-14
  2. Hough(霍夫变换) 基于Opencv2.4.9 和VS2012平台下编写
  3. Python进行websocket接口测试
  4. html5移动web开发黑马掌上商城_月入35k大佬总结:web前端必须学习的内容(附全套前端教程)...
  5. 5.1 内存模型基础
  6. 计算机英语微课,【计算机英语论文】大学计算机基础微课设计研究
  7. linux 脚本监听,Linux—编写shell脚本监控主机
  8. java 项目名命名规范_javaWeb项目命名规范
  9. 数据库本地的sa有个叉号_多个客户端(50)同时使用sa账号操作服务器数据库(sqlserver)会有问题吗?...
  10. redis源码剖析(5):基础数据结构inset