回文字符串

来源:互联网 发布:python 实现http接口 编辑:程序博客网 时间:2024/06/07 01:41

求给定字符串变成回文字符串,最少需插入多少个字符

输入:nn=3~5000

n个字符

输出:最少插入字符数

样例:入:5

          Ab3bd

      出:2

附AC码:

#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>using namespace std;char a[5001];char b[5001];int f[5001][5001];int main(){    int i,j,k,m,n;    //freopen("palindrome.in","r",stdin);//freopen("palindrome.out","w",stdout);scanf("%d\n",&n);gets(a);for(i=0;i<n;i++)    b[n-i-1]=a[i];for(i=n;i>=1;i--){    a[i]=a[i-1];    b[i]=b[i-1];}b[0]='\0';a[0]='\0';    for(i=1;i<=n;i++)    for(j=1;j<=n;j++){    if(a[i]==b[j])    f[i][j]=f[i-1][j-1]+1;else if(f[i-1][j]>f[i][j-1])    f[i][j]=f[i-1][j];else    f[i][j]=f[i][j-1];}printf("%d\n",n-f[n][n]);    return 0;}


0 0
原创粉丝点击