回文字符串(nyoj_37)
来源:互联网 发布:苹果手机看图软件 编辑:程序博客网 时间:2024/06/05 14:22
回文字符串
时间限制:3000 ms | 内存限制:65535 KB
难度:4
- 描述
- 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。
- 输入
- 第一行给出整数N(0<N<100)
接下来的N行,每行一个字符串,每个字符串长度不超过1000. - 输出
- 每行输出所需添加的最少字符数
- 样例输入
1Ab3bd
- 样例输出
2
来源
把字符串逆序,求出逆序后的字符串与原字符串的最长公共子序列即为已经匹配好的字符串,用总长度减去已经匹配好的字符串
即为所求
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ int n; scanf("%d", &n); char x[1010]; char y[1010]; int c[1010][1010]; while(n--){ scanf("%s", x); int lenx = strlen(x); int k = 0; int i, j; for(i = lenx-1;i >= 0;i--){ y[k++] = x[i]; } for(i = 0;i <= lenx;i++){ c[i][0] = c[0][i] = 0; } for(i = 1;i <= lenx; i++){ for(j =1;j <= lenx;j++){ if(x[i-1] == y[j-1]){ c[i][j] = c[i-1][j-1] +1; }else if(c[i-1][j] > c[i][j-1]){ c[i][j] = c[i-1][j]; }else { c[i][j] = c[i][j-1]; } } } printf("%d\n", lenx-c[lenx][lenx]); } return 0;}
0 0
- 回文字符串(nyoj_37)
- nyoj_37 回文字符串
- nyoj_37 回文字符串
- 还是回文 && 回文字符串
- 字符串回文
- 回文字符串
- 回文字符串
- 回文字符串
- 回文字符串
- 回文字符串
- 字符串回文
- 回文字符串
- 回文字符串
- 回文字符串
- 回文字符串
- 回文字符串
- 回文字符串
- 回文字符串
- emgucv读取摄像头
- HBase技术介绍
- js中的立即执行函数
- Oracle BPM开发中遇到的一些问题和解决方法
- mybatis中的CDATA标签的用法
- 回文字符串(nyoj_37)
- play SMTP Configuratoin
- python内建函数总结
- 大学生录取预测——逻辑回归
- Hbase入门API操作和 shell操作
- 通用Adapter
- spring 技术内幕--DTD与XSD
- bzoj3626: [LNOI2014]LCA (树链剖分+离线线段树)
- Eclipse导入git工程(HTTP与SSH两种导入方式)