题面翻译
给出最大操作次数 k 和字符串 S 、字符串 T ,询问我们是否可以让两个字符串相等
每一次操作可以用以下三个操作之一并执行它。
给字符串S任意增加一个字符
给字符串S任意减少一个字符
给字符串S的某个位置替换为另一个字符
S的长度大与等于1,小于等于500000
#include<bits/stdc++.h>
using namespace std;
int main(){
int k;
string s,t;
cin>>k>>s>>t;
int l=s.size();
int l2=t.size();
if(l>l2){
swap(l,l2);
swap(s,t);
}
k-=l2-l;
int x=0;
for(int i=0;i<l;i++){
for(int j=x;j<l2;j++){
if(s[i]==t[j]){
x=j+1;
break;
}
if(j==l2-1){
k--;
}
}
}
if(k>=0){
cout<<"Yes";
return 0;
}
else {
cout<<"No";
return 0;
}
return 0;
}