zoukankan      html  css  js  c++  java
  • nyoj 37 回文字符串 【DP】

    先反向复制一个新的字符串,然后再找出最长公共子串,在用长度n减去就可以

    回文字符串

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:4
    描写叙述
    所谓回文字符串,就是一个字符串,从左到右读和从右到左读是全然一样的,比方"aba"。当然,我们给你的问题不会再简单到推断一个字符串是不是回文字符串。如今要求你。给你一个字符串。可在任何位置加入字符。最少再加入几个字符,能够使这个字符串成为回文字符串。
    输入
    第一行给出整数N(0<N<100)
    接下来的N行,每行一个字符串,每一个字符串长度不超过1000.
    输出
    每行输出所需加入的最少字符数
    例子输入
    1
    Ab3bd
    例子输出
    2
    #include<stdio.h>
    #include<string.h>
    int dp[1005][1005];
    int main()
    {
    	char a[1005], b[1005];
    	int n, i, j, la;
    	scanf( "%d", &n );
    	while( n -- )
    	{
    		scanf( "%s", a);
    		i = 0;
    		la = strlen(a);
    		while( i< la )
    		{
    			b[la-i-1] = a[i];
    			++i;
    		}
    		b[i] = '';
    		memset( dp, 0, sizeof(dp) );
    		for( i = 1; i <=la; i ++ )
    		for( j = 1; j <=la; j ++ )
    		if( a[i-1]==b[j-1] )
    		dp[i][j] = dp[i-1][j-1] +1;
    		else
    		dp[i][j] = dp[i-1][j]>=dp[i][j-1]?dp[i-1][j]:dp[i][j-1];
    		printf( "%d
    ", la-dp[la][la] );
    	}
    	return 0;
    }



  • 相关阅读:
    docker常用命令
    docker安装注意事项
    DataGridView中实现自动编号
    Flask设置配置文件
    python路径找类并获取静态字段
    JavaScript数据类型
    php学习笔记6
    php学习笔记5
    php学习笔记4
    php学习笔记3
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/7339355.html
Copyright © 2011-2022 走看看