Author: loop3r
Date: 20260223
tag: 模拟
link: https://www.luogu.com.cn/problem/P10905问题描述
分析
按题意模拟。
参考代码
cpp
#include<bits/stdc++.h>
using namespace std;
bool check(string s) {
string t = s;
reverse(s.begin(), s.end());
return t == s;
}
int main() {
int T; cin >> T;
while (T--) {
string s; cin >> s;
int a = 0, c = 0;
for (int i = 0; i < s.size(); i++) {
if (s[i] == 'l' || s[i] == 'q' || s[i] == 'b') a++;
else break;
}
for (int i = s.size() - 1; i >= 0; i--) {
if (s[i] == 'l' || s[i] == 'q' || s[i] == 'b') c++;
else break;
}
if (a == s.size() && a == c) {
puts("Yes");
continue;
}
if (a <= c) {
string t = "";
for (int i = 0; i < a + s.size() - c; i++) t += s[i];
if (check(t)) puts("Yes");
else puts("No");
} else puts("No");
}
return 0;
}