➤ Problem Link : PLNDROME
👉 Hint : edit please
✅ C++ Solution :
#include<bits/stdc++.h>
using namespace std;
unordered_set<int> us;
int main()
{
int t;
cin>>t;
for(int r=1;r<=t;r++)
{
us.clear();
int n,cnt=0;
cin>>n;
string s;
cin>>s;
int l =s.length();
for(int i=0;i<=(l-1)/2;i++)
{
if(s[i]==s[l-1-i])
{
cnt++;
us.insert(i);
}
}
int m;
cin>>m;
int x,p;
char c;
cout<<"Case "<<r<<":\n";
while(m--)
{
cin>>x>>c;
s[x-1]=c;
p=min(x-1,l-x);
if(us.find(p)!=us.end())
{
cnt--;
us.erase(p);
}
if(s[x-1]==s[l-x])
{
cnt++;
us.insert(p);
}
if(cnt==ceil(double(l)/2))
cout<<"YES\n";
else
cout<<"NO\n";
}
}
}
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!
