#include<bits/stdc++.h>
using namespace std;
bool Is_huiwen(string s){
int length = s.length();
for(int i=0,j=length-1;i<=j;i++,j--){
if(s[i]!=s[j]) return false;
}
return true;
}
bool canFormPalindrome(string s){
int n = s.length();
int i =0,j=n-1;
if(Is_huiwen(s)){
return true;
}
//从两端向中间检查
while(i<j){
if(s[i]!=s[j]){
//如果不匹配,检查s[j]是否是可插入的字符
if(s[j]!='l'&&s[j]!='q'&&s[j]!='b'){
return false;// 如果不是可插入的字符,直接返回 No
}
j--;// 如果是可插入的字符,跳过 s[j],继续检查下一个字符
}
else{// 如果匹配,继续向中间移动
i++;
j--;
}
}
return true;
}
int main(){
int N;
cin >> N;
vector<string> strings;
for(int i=0;i<N;i++){
string s;
cin >> s;
strings.push_back(s);
}
for(int i=0;i<N;i++){
if(canFormPalindrome(strings[i])){
cout << "Yes"<<endl;
}
else{
cout << "No"<<endl;
}
}
return 0;
}
1 回复
0 转发
0 喜欢
2 阅读



