链接:
https://codeforces.com/problemset/problem/1553/D
题意:
给我们一个字符串s,再给我们一个目标字符串t,如果我们通过把字符串s上的字符改成Backspace的方式,使字符串变成目标字符串t,则输出yes。
本题通过观察我们可以看到,目标字符串t映射到字符串s上的每个字符之间,下标差值均为奇数;并且从第一个相同的字符开始,两字符串的长度需要奇偶性一致,以此我们可以判断应该从字符串s的哪一个字符开始和目标字符串t进行匹配。
代码如下:
#include<iostream>
#include<string>
using namespace std;
typedef long long ll;
int main() {
int T;
cin >> T;
while (T--) {
string s;
cin >> s;
string t;
cin >> t;
int cnt = 0;
for (int i = ((s.size()-t.size())&1); i < s.size(); i++) {
if (t[cnt] != s[i]) {
i++;
}
else {
cnt++;
if (cnt == t.size()) {
break;
}
}
}
if (cnt == t.size()) {
cout << "YES";
}
else {
cout << "NO";
}
cout << endl;
}
}