zoukankan      html  css  js  c++  java
  • 雅礼2018-03-11 2

    题 4:字符串的修改(str.pas/in/out)
    【问题描述】
    有 A=a1a2a3„am,B=b1b2b3„bn 两个字符串(均为小写字母)现在要通过以下操作将 A
    或 A 的一个后缀修改为 B:
    1. 删除 删除掉 A 中的某一个字符。
    2. 添加 将某一个字符添加到 A 中任意位置。
    3. 替换 将 A 中某一字符替换为另一个。
    求出最小操作次数。
    【输入格式】
    第一行为字符串 A。 第二行为字符串 B(长度均不超过 1000)。
    【输出格式】
    一个正整数,最小操作次数。
    【样例输入】
    aaab
    aabc
    【样例输出】
    1
    【提示】
    1 次操作 使用后缀 aab 在末尾插入 c。

    原先思路:暴力枚举1~3的几种情况,结果木有得一分,白忙活了。。。。。。

    代码要用到DP(动态规划)的思路,由于时间关系,发个老师的代码:

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    const int maxn=1000+10;
    int a[maxn];
    string s[maxn];
    int main(){
    int i,j,k,m,n;
    string s1,s2;
    cin>>s1>>s2;
    if(s1==s2){cout<<0<<endl;return 0;}
    int l=1;
    for(i=1;i<s1.length();i++){
    s[i]=s1.substr(l);
    l++;
    }
    for(i=1;i<s1.length();i++){
    if(s[i]==s2){cout<<0<<endl;return 0;}
    }
    return 0;
    }

  • 相关阅读:
    学习笔记-Bootstrap
    学习笔记-JavaScript
    学习笔记-HTML
    学习笔记-数据库操作
    学习笔记-MATLAB
    学习笔记-mysql基本操作
    学习笔记-Java进阶
    学习笔记-Java入门
    学习笔记-考研英语
    学习笔记-线代
  • 原文地址:https://www.cnblogs.com/jr-ag/p/8546979.html
Copyright © 2011-2022 走看看