B. Reverse String
题目传送门:
题面:
题目大意:
题意非常的阴间,属于读对题意就能做的题目。
给定两个字符串s1和s2,在s1中选择任意一个位置作为起点,向右移动,再向左移动。
(也可以不移动视作移动0步)。
不能忽左忽右,左了就不能右!!
每移动到一个位置就在新串中加入这个字符,能否得到s2。
思路:
其实哪个点出发都一样,枚举折返点即可。
那么所有情况都已经包含在里面了。
代码:
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
int main() {
int T;
cin >> T;
while (T--) {
string s, t;
cin >> s >> t;
string tmp;
string str;
bool f = 0;
for (int i = 0; i < s.size(); i++) {
tmp = s.substr(0, i + 1);
str = s.substr(0, i);
reverse(str.begin(), str.end());
tmp += str;
if (tmp.find(t) != tmp.npos) {
f = 1;
break;
}
}
if (f)cout << "YES" << endl;
else cout << "No" << endl;
}
}