➤ Problem Link : 559B. Equivalent Strings
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; map<pair<string,string>,bool > st; bool equivalent(string s,string t) { if(s==t) return true; if(s.length()%2==1) return false; if((st.find(make_pair(s,t))!=st.end() && st[make_pair(s,t)]==1) || (st.find(make_pair(t,s))!=st.end() && st[make_pair(t,s)]==1)) return true; int mid=s.length()/2; string a1=s.substr(0,mid); string a2=s.substr(mid); string b1=t.substr(0,mid); string b2=t.substr(mid); if((equivalent(a1,b1) && equivalent(a2,b2)) || (equivalent(a1,b2) && equivalent(a2,b1))) { st[make_pair(s,t)]=1; return true; } return false; } int main() { string s,t; cin>>s>>t; st.clear(); if(equivalent(s,t)) cout<<"YES"; else cout<<"NO"; }
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!!