AMR12D - The Mirror of Galadriel - SPOJ Solution C++

  Problem Link : AMR12D 


👉 Hint : Use unordered_set

 


✅ C++ Solution :

 
#include<bits/stdc++.h>
using namespace std;

unordered_set<string> st;

int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		st.clear();
		string s;
		bool flag=1;
		cin>>s;
		string t;
		for(int i=0;i<s.length();i++)
		{

			t="";
			for(int j=i;j<s.length();j++)
			{
				t+=s[j];
				st.insert(t);
			}
		}
		for(int i=0;i<s.length();i++)
		{

			t="";
			for(int j=i;j<s.length();j++)
			{
				t+=s[j];
				string p=t;
				reverse(p.begin(),p.end());
				if(st.find(p)==st.end())
				{
					flag=0;
					break;
				}
			}
			if(flag==0)
				break;
		}
		if(!flag)
			cout<<"NO"<<endl;
		else
			cout<<"YES"<<endl;
	}
}

 

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!!