Iso Lexo String (Contest)

Iso Lexo String (Contest) easy Time Limit: 2 sec Memory Limit: 128000 kB

Problem Statement :

Given a string S find lexicographically minimum isomorphic string of string S. Two string s and t are said to be isomorphic when the following conditions are satisfied:

both s and t have equal lengths for every i and j one of the following condition holds: 1 - s[i] == s[j] and t[i] == t[j] 2 - s[i] != s[j] and t[i] != t[j] Input Input contains a single string S.

Constraints: 1 <= |S| <= 100000 S contains only lowercase english letters. Output Print lexicographically minimum isomorphic string of S. Note - the ouput string should only contain lowercase english letters. Example Sample Input aaaddd

Sample Output aaabbb

Explanation: for every i and j if s[i] = s[j] then t[i] = t[j] and if s[i] != s[j] then t[i] != t[j] aaabb is lexicographically minimum such string.

link:https://my.newtonschool.co/playground/code/kj71nuazyi3y/

```java
import java.io.*; // for handling input/output
import java.util.*; // contains Collections framework

// don't change the name of this class
// you can add inner classes if needed
class Main {
    public static void main (String[] args) {
        // Your code here
        Scanner sc = new Scanner(System.in);
        String str = sc.next();

        HashMap<Character , Character> hm = new HashMap<>();
        int n = str.length();
        char ch = 'a';
        StringBuffer sb = new StringBuffer();
        for(int i = 0; i<n ; i++){
            char curr = str.charAt(i);
            if(!hm.containsKey(curr)){
                hm.put(curr , ch);
                ch++;
            }
            sb.append(hm.get(curr));
        }
        System.out.print(sb);
    }
}
```

Last updated