• 南阳理工学院动态规划专题 回文字符串


    这个问题使用动态规划求解,dp[i][j]表示字符串下标为i的字符和下标为j的字符区间内构成回文所需加入的最少的字符串。

    当str[i]==str[j]时,则dp[i][j]=dp[i+1][j-1],当str[i]!=str[j]时,dp[i][j]=min(dp[i+1][j]+1,dp[i][j-1]+1),初始化时候,d[i][i]=0,d[i][i+1]=1(这里真是纠结了一个多小时,我还以为我转移方程错了!!!)。输出dp[0][strlen(str)-1].

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    char str[1001];
    int dp[1001][1001];
    int main()
    {
       int cas;
       cin>>cas;
       while(cas--)
       {
           cin>>str;
           int l=strlen(str);
           for(int i=0;i<l;i++)
           {
               dp[i][i]=0;
           }
           for(int i=0;i<l-1;i++)
           {
               if(str[i]==str[i+1])
                 dp[i][i+1]=0;
               else dp[i][i+1]=1;
           }
           for(int k=2;k<l;k++)
           {
               for(int i=0;i+k<l;i++)
               {
                   int j=i+k;
                   if(str[i]==str[j])
                   {
                       dp[i][j]=dp[i+1][j-1];
                   }
                   else
                   {
                       dp[i][j]=min(dp[i+1][j]+1,dp[i][j-1]+1);
                   }
               }
           }
    //       for(int i=0;i<l;i++)
    //       {
    //         for(int j=0;j<l;j++)
    //            cout<<dp[i][j]<<' ';
    //         cout<<endl;
    //       }
    
           cout<<dp[0][l-1]<<endl;
       }
    }
    

    回文字符串

    时间限制:3000 ms  |            内存限制:65535 KB
    难度:4
    描述
    所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。
    输入
    第一行给出整数N(0<N<100)
    接下来的N行,每行一个字符串,每个字符串长度不超过1000.
    输出
    每行输出所需添加的最少字符数
    样例输入
    1
    Ab3bd
    样例输出
    2
    来源
    IOI 2000
    上传者
    hzyqazasdf


     

  • 相关阅读:
    Linux配置dhcp自动获取ip地址
    CentOS7密码复杂度配置
    JDK切换和BurpSuite破解
    python操作Elasticsearch7.x
    mongoShake docker 部署 (mongoshake:2.6.5)
    elasticsearch 7.x 安装使用(ik,elasticsearch head )
    mongoDB -- 全文索引
    商业模式画布
    Vue全家桶--12 Vue-CLI 3.x 脚手架构建项目
    Vue全家桶--11 Webpack和Vue-Loader打包资源
  • 原文地址:https://www.cnblogs.com/jackwuyongxing/p/3366480.html
Copyright © 2020-2023  润新知