➤ Problem Link : 858D. Polycarp's phone book
✅ C++ Solution :
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
string arr[n];
unordered_map<string,int> mp;
string s;
for(int i=0;i<n;i++)
{
cin>>s;
arr[i]=s;
unordered_set<string> us;
for(int i=0;i<s.length();i++)
{
string p="";
for(int j=i;j<s.length();j++)
{
p+=s[j];
if(us.find(p)==us.end())
{
us.insert(p);
mp[p]++;
}
}
}
}
string t="";
for(int i=0;i<n;i++)
{
s=arr[i];
bool flag=0;
for(int j=1;j<=9;j++)
{
for(int k=0;k<=9-j;k++)
{
t=s.substr(k,j);
if(mp[t]<=1)
{
flag=1;
cout<<t<<"\n";
break;
}
}
if(flag)
break;
}
}
}
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!!
