为什么会 RE 在第 9 个点上,90分?
查看原帖
为什么会 RE 在第 9 个点上,90分?
1031602
JYX0924楼主2024/8/24 12:27
#include<bits/stdc++.h>
#define ll long long 
using namespace std;
ll T;
string s;
int main()
{
	ios::sync_with_stdio(false); cin.tie(0);
	cin>>T;
	while(T--)
	{
		cin>>s; int len=s.length();
		deque<int> q[30]; vector<int> pos;
		for(int i=0;i<len;i++) if(s[i]!='l'&&s[i]!='b'&&s[i]!='q') q[s[i]-'a'].push_back(i);
		for(int i=0;i<26;i++)
		{
			while(!q[i].empty())
			{
				pos.push_back((q[i].front()+q[i].back()));
				q[i].pop_front(); if(!q[i].empty()) q[i].pop_back();
			}
		}
		len=pos.size();
		if(len==0) {cout<<"Yes\n"; continue;}
		ll tt=pos[0]; bool flag=0;
		for(int i=1;i<len;i++) if(pos[i]!=tt) {flag=1; break;}
		if(flag==1) {cout<<"No\n"; continue;}
		len=s.length();
		for(int i=0;i<len;i++)
		{
			if(s[i]=='l'||s[i]=='b'||s[i]=='q')
			{
				if(tt-i<0) continue;
				if(s[tt-i]!=s[i]) {flag=1; break;}
			}
		}
 		if(flag==1) cout<<"No\n"; else cout<<"Yes\n";
	}
	return 0;
}
2024/8/24 12:27
加载中...