POJ 1159 字符串匹配问题
2014-08-10 14:06
274 查看
题目大意:
问至少添加几个字符才能保证这个字符串是个回文串
一开始想也想不到字符串匹配上,因为是找回文串,我们可以把已给字符串逆向得到一个新的字符串,然后比较两者得到最大匹配长度,最后总长度减去最大匹配长度
就是所要求的值
问至少添加几个字符才能保证这个字符串是个回文串
一开始想也想不到字符串匹配上,因为是找回文串,我们可以把已给字符串逆向得到一个新的字符串,然后比较两者得到最大匹配长度,最后总长度减去最大匹配长度
就是所要求的值
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define N 5005 char str ,rev ; short dp ; void get_rev(int n,char *str) { int cnt=0; for(int i=n-1;i>=0;i--) rev[cnt++]=str[i]; } int main() { int n; scanf("%d",&n); scanf("%s",str); get_rev(n,str); //cout<<str<<endl<<rev<<endl; memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++){ //dp[i][j]=max(dp[i-1][j],dp[i+1][j]); for(int j=1;j<=n;j++){ if(str[i-1]==rev[j-1]) 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",n-dp ); return 0; }
相关文章推荐
- poj-3461 kmp字符串匹配问题
- 字符串匹配问题
- 字符串匹配问题
- 字符串匹配之通配符问题------一串首尾相连的珠子(m个),有N种颜色(N《=10),设计一个算法,取出其中一段,要求包含所有N中颜色,并使长度最短。
- 【转】POJ 1159 Palindrome【经典的DP回文问题】
- poj 2192 字符串匹配
- 中文字符串匹配问题
- 面试经典--字符串匹配问题
- C++中用栈来判断括号字符串匹配问题
- 腾讯笔试题之字符串匹配问题
- 字符串匹配问题
- ASP VBScript脚本多字符串匹配问题
- POJ 1936(字符串匹配) 解题报告
- 一个海量字符串匹配问题
- 字符串匹配问题
- POJ 2403 字符串匹配 暴力过
- 一个海量字符串匹配问题
- 【DP生成回文字符串的最小插入字符数】POJ 1159
- 简单字符串匹配问题-——用哈希解决
- poj1159 —— 一个字符串,求最少插入几个字符可以组成回文