Skip to content
Author: loop3r
Date: 20260223
tag: 模拟
link: https://www.luogu.com.cn/problem/P10905

问题描述

link

分析

按题意模拟。

参考代码

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;
}