1. 程式人生 > >雅禮2018-03-11 2

雅禮2018-03-11 2

情況 問題 clu bstr blog 動態 一個 mes abc

題 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;
}

雅禮2018-03-11 2