50分求改
查看原帖
50分求改
1570219
yxjyxjyxjyxj楼主2025/6/17 20:26
#include <bits/stdc++.h>
using namespace std;

string fs(int l, int r, string s) {
	string h = "";
	for (int i = l; i <= r; i++) {
		h += s[i];
	}
	return h;
}

bool f(string s) {
	for (int i = 0, j = s.size() - 1; i <= j; i++, j--) {
		if (s[i] != s[j])
			return 0;
	}
	return 1;
}

int main() {
	int t;
	cin >> t;
	while (t) {
		string s;
		cin >> s;
		if (f(s) == 1)
			cout << "Yes" << endl;
		else {
			int l;
			for (int i = s.size() - 1; i >= 0; i--) {
				if (s[i] != 'l' && s[i] != 'q' && s[i] != 'b') {
					l = i;
					break;
				}
			}
			int r;
			for (int i = 0 ; i < s.size() - 1; i++) {
				if (s[i] != 'l' && s[i] != 'q' && s[i] != 'b') {
					r = i;
					break;
				}
			}
			if (r == 0) {
				if (f(fs(0, l, s)))
					cout << "Yes\n";
				else
					cout << "No\n";
			} else {
				if (f(fs(r, l, s)) && fs(0, r - 1, s) == fs(l + 1, s.size() - r, s))
					cout << "Yes\n";
				else
					cout << "No\n";
			}
		}
		t--;
	}
	return 0;
}
2025/6/17 20:26
加载中...