题目:
题解:
模拟
#include <bits/stdc++.h>
using namespace std;
string a;
int vis[1000005];
int main()
{
cin>>a;
int l=a.size();
int q;
cin>>q;
int con=0;
for(int i=0,j=l-1;i<j;i++,j--)
{
if(a[i]!=a[j])
{
vis[i]=1;
vis[j]=1;
con++;
}
}
while(q--)
{
int c;
char d;
cin>>c>>d;
if(l%2==1&&c==l/2+1)
{
if(con==0) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
else
{
int i=c-1;
int j=l-1-i;
if(con)
{
if(vis[c-1])
{
if(d==a[j])
{
con--;
if(con==0) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
vis[i]=0;
vis[j]=0;
a[i]=d;
}
else
{
cout<<"No"<<endl;
a[i]=d;
}
}
else
{
if(a[i]==d)
{
cout<<"No"<<endl;
}
else
{
a[i]=d;
cout<<"No"<<endl;
con++;
vis[i]=1;
vis[j]=1;
}
}
}
else
{
if(a[i]==d)
{
cout<<"Yes"<<endl;
}
else
{
cout<<"No"<<endl;
con++;
vis[i]=1;
vis[j]=1;
a[i]=d;
}
}
}
}
return 0;
}