LEXICOGRAPHICALLY MINIMUM STRING SPACE OPTIMISATION HACKEREARTH

    #include<bits/stdc++.h>
    using namespace std;
    int parent[27];
     
    int find(int i){
       if(i==parent[i])
       return i;
       parent[i]=find(parent[i]);
       return parent[i];
    }
     
    void union1(int x,int y){
       parent[max(x,y)]=min(x,y);
    }
     
    string Solution (string Astring Cstring B) {
       // Write your code here
    }
     
    int main() {
     
        ios::sync_with_stdio(0);
        cin.tie(0);
        string A;
        getline(cinA);
        string B;
        getline(cinB);
        string C;
        getline(cinC);
     
        string out_;
        for(int i=0;i<26;i++)
        parent[i]=i;
        for(int i=0;i<A.length();i++){
           int a=A[i]-'a';
           int b=B[i]-'a';
           a=find(a);
           b=find(b);
           if(a!=b)
           union1(a,b);
        }
        char c='a';
        for(int i=0;i<C.length();i++){
        cout<<(char)(c+find(C[i]-'a'));
    }
    }

Comments