小码哥和小码妹是好朋友,他们有时会用一种方式检测双方的默契程度:两人分别给出一个字符串8 和并进行若干次操作使s串变得和t串一样。操作分为两种:
1. 删除s 串的第一个字符;
2. 将一个新字符插在 s 串的第一个字符之前。
如果可以用正好n次操作使s串变为t串,就意味着他们两人很有默契,输出YES ,否则输出NO。
格式
输入格式:
输入共三行。第一行一个整数n满足0≤n<2*10^6;第二行一个字符串 s;
第三行一个字符串 t,保证 1≤|s|,|t|<2*10^5 且包含的字符均为小写字母。
输出格式:输出一行,YES或NO
样例1
输入:16
aeomopil
scomlpab
输出:YES
代码 通过公共后缀值计算最小操作数op op<=n且op-n为偶数时可以使s串变得和t串一样
#include <iostream>
#include <string>
using namespace std;
void f(string s,string t,int n){
int len=0;
int i=s.length()-1;
int j=t.length()-1;
while(i>=0&&j>=0&&s[i]==t[j]){
len++;
i--;
j--;
}
int op=s.length()+t.length()-2*len;
if(op<=n&&(op-n)%2==0) cout<<"YES";
else cout<<"NO";
}
int main() {
string s,t;
int n;
cin>>n;
cin>>s;
cin>>t;
f(s, t, n);
return 0;
}
标签:输出,05,int,C++,length,len,YES,默契,op
From: https://blog.csdn.net/Rluhan7/article/details/140969630