1. String ‘s’, ‘t’ and ‘str’ consist of only lowercase English letters from ‘a’ – ‘z’.
2. String ‘s’ and ‘t’ are of same length.
Let s = “abc” , t = “xyz” and str = “xbc” then all strings that we can generate are “abc”, “abz”, “ayc”,”ayz”, “xbc”, “xbz”, “xyc”, “xyz” and smallest of all these is “abc”.
The first line of input contains an integer 'T' representing the number of test cases.
The first and the only line of each test case contains three space-separated strings ‘s’, ‘t’ and ‘str’.
For each test case, print a single line containing a single string denoting the smallest equivalent string of ‘str’.
The output for each test case is printed in a separate line.
You do not need to print anything, it has already been taken care of. Just implement the given function.
1 <= T <= 5
1 <= N, M <= 5000
Where ‘T’ is the number of test cases, ‘N’ is the length of string ‘s’ and ‘t’ and ‘M’ is the length of ‘str’.
Time limit: 1 second
The idea here is to use disjoint set union or union-find data structure.
It provides the following capabilities. We are given several elements, each of which is a separate set. A DSU will have an operation to combine any two sets, and it will be able to tell in which set a specific element is.
Thus the basic interface of this data structure consists of only three operations:
We iterate both string ‘s’ and ‘t’ and union all characters placed at the same index i.e.
union(s[i],t[i]) where i goes from 0 -> s.length-1.
And to make the lexicographically smallest string we just return the find_set value of each character of ‘str’.
Algorithm:
Description of union_set(int a, int b)
Description of find_set(int v)
Group Points
Group Points
Group Points
Group Points
Check Equations
Ninja And The Malicious Software
Ninja And The Malicious Software
Ninja And The Malicious Software
Ninja And The Malicious Software
Ninja And The Malicious Software
Ninja And The Malicious Software
Good Bad Graph
Good Bad Graph
COUNT ISLANDS