Change string to a new character set - GeeksforGeeks

24 Feb, 2022
Given a 26 letter character set, which is equivalent to character set of English alphabet i.e. (abcd....xyz) and act as a relation. We are also given several sentences and we have to translate them with the help of given new character set.
Examples: 
New character set : qwertyuiopasdfghjklzxcvbnm
Input : "utta"
Output : geek

Input : "egrt"
Output : code
Idea behind conversion of new character set is to use hashing. Perform hashing of new character set where element of set is index and its position will be new alphabet value. 
Approach1: Given New character set = “qwertyuiopasdfghjklzxcvbnm” 
First character is q, during hashing we will place ‘a’ (for position ) at index q i.e. (17th).After hashing our new character set is “kxvmcnophqrszyijadlegwbuft”.For input “egrt” =   hash[e -‘a’] = c   hash[g -‘a’] = o   hash[r -‘a’] = d   hash[t -‘a’] = eFor “egrt” is equivalent to “code”.
First character is q, during hashing we will place ‘a’ (for position ) at index q i.e. (17th).
After hashing our new character set is “kxvmcnophqrszyijadlegwbuft”.
For input “egrt” =   hash[e -‘a’] = c   hash[g -‘a’] = o   hash[r -‘a’] = d   hash[t -‘a’] = eFor “egrt” is equivalent to “code”.
C++
Java
C#
Javascript
// CPP program to change the sentence// with virtual dictionary#include<bits/stdc++.h>using namespace std; // Converts str to given character setvoid conversion(char charSet[], string &str){    int n = str.length();     // hashing for new character set    char hashChar[26];    for (int i = 0; i < 27; i++)           hashChar[charSet[i]-'a'] = 'a' + i;            // conversion of new character set    for (int i = 0; i < n; i++)        str[i] = hashChar[str[i]-'a'];} // Driver codeint main(){    char charSet[27] = "qwertyuiopasdfghjklzxcvbnm";    string str = "egrt";    conversion(charSet, str);    cout << str;    return 0;}
// Java program to change the sentence// with virtual dictionaryclass GFG { // Converts str to given character set    static String conversion(char charSet[], String str) {        int n = str.length();         // hashing for new character set        char hashChar[] = new char[26];        for (int i = 0; i < 26; i++) {            int ch = Math.abs(charSet[i] - 'a');            hashChar[ch] = (char) ('a' + i);        }         // conversion of new character set        String s="";        for (int i = 0; i < n; i++) {            s += hashChar[str.charAt(i) - 'a'];        }        return s;    } // Driver code    public static void main(String[] args) {        char charSet[] = "qwertyuiopasdfghjklzxcvbnm".toCharArray();        String str = "egrt";        str = conversion(charSet, str);        System.out.println(str);// This code is contributed by princiRaj1992    }}
// C# program to change the sentence// with virtual dictionaryusing System;     class GFG{     // Converts str to given character set    static String conversion(char []charSet,                             String str)    {        int n = str.Length;         // hashing for new character set        char []hashChar = new char[26];        for (int i = 0; i < 26; i++)        {            int ch = Math.Abs(charSet[i] - 'a');            hashChar[ch] = (char) ('a' + i);        }         // conversion of new character set        String s = "";        for (int i = 0; i < n; i++)        {            s += hashChar[str[i] - 'a'];        }        return s;    }     // Driver code    public static void Main(String[] args)    {        char []charSet = "qwertyuiopasdfghjklzxcvbnm".ToCharArray();        String str = "egrt";        str = conversion(charSet, str);        Console.WriteLine(str);    }} // This code is contributed by Princi Singh
<script>// Javascript program to change the sentence// with virtual dictionary // Converts str to given character setfunction conversion(charSet, str){    var n = str.length;     // hashing for new character set    var hashChar = Array(26);    for (var i = 0; i < 26; i++)        {       var ch = Math.abs(charSet[i].charCodeAt(0)-        'a'.charCodeAt(0));        hashChar[ch] =        String.fromCharCode('a'.charCodeAt(0) + i);  }    var s = "";         // conversion of new character set    for (var i = 0; i < n; i++)        s += (hashChar[str[i].charCodeAt(0)-'a'.charCodeAt(0)]);    return s;} // Driver codevar charSet = "qwertyuiopasdfghjklzxcvbnm".split('');var str = "egrt";str = conversion(charSet, str);document.write( str); // This code is contributed by importantly.</script>
Output: 
code
Approach2:   1.Initialize two strings, one with actual set of alphabets and another with modified one.   2.Get the string to be converted from the user.   3.Retrieve the first element of the string, find its index in the modified set of alphabets(eg:0 for ‘q’).   4.Find the element of same index in the actual set of alphabets and concatenate it with the result string.   5.Repeat the above steps for all the remaining elements of the input string.   6.Return the result string. 
Java
Python3
C#
Javascript
// Java program to change the sentence// with virtual dictionary class GFG{    static char[] alphabets = "abcdefghijklmnopqrstuvwxyz".toCharArray();     // function for converting the string    static String conversion(String charSet, char[] str1)    {        String s2 = "";        for (char i : str1)                     // find the index of each element of the            // string in the modified set of alphabets            // replace the element with the one having the            // same index in the actual set of alphabets            s2 += alphabets[charSet.indexOf(i)];         return s2;    }     // Driver Code    public static void main(String[] args)    {        String charSet = "qwertyuiopasdfghjklzxcvbnm";        String str1 = "egrt";        System.out.print(conversion(charSet, str1.toCharArray()));    }} // This code is contributed by PrinciRaj1992
# Python3 program to change the sentence#  with virtual dictionary #function for converting the stringdef conversion(charSet,str1):    s2=""    for i in str1:        # find the index of each element of the        # string in the modified set of alphabets        # replace the element with the one having the        # same index in the actual set of alphabets        s2 += alphabets[charSet.index(i)]             return s2 # Driver Codeif __name__=='__main__':    alphabets = "abcdefghijklmnopqrstuvwxyz"    charSet= "qwertyuiopasdfghjklzxcvbnm"    str1 = "egrt"    print(conversion(charSet,str1)) #This code is contributed by PradeepEswar
// C# program to change the sentence// with virtual dictionaryusing System; class GFG{    static char[] alphabets = "abcdefghijklmnopqrstuvwxyz".ToCharArray();     // function for converting the string    static String conversion(String charSet, char[] str1)    {        String s2 = "";        foreach (char i in str1)                     // find the index of each element of the            // string in the modified set of alphabets            // replace the element with the one having the            // same index in the actual set of alphabets            s2 += alphabets[charSet.IndexOf(i)];         return s2;    }     // Driver Code    public static void Main(String[] args)    {        String charSet = "qwertyuiopasdfghjklzxcvbnm";        String str1 = "egrt";        Console.Write(conversion(charSet, str1.ToCharArray()));    }} // This code is contributed by Rajput-Ji
<script>      // JavaScript program to change the sentence      // with virtual dictionary      var alphabets = "abcdefghijklmnopqrstuvwxyz".split("");       // function for converting the string      function conversion(charSet, str1) {        var s2 = "";        str1.forEach((i) => {          // find the index of each element of the          // string in the modified set of alphabets          // replace the element with the one having the          // same index in the actual set of alphabets          s2 = s2 + alphabets[charSet.indexOf(i)];        });        return s2;      }       // Driver Code      var charSet = "qwertyuiopasdfghjklzxcvbnm";      var str1 = "egrt";      document.write(conversion(charSet, str1.split("")));             // This code is contributed by rdtank.    </script>
Output: 
code
 
PradeepEswar
princiraj1992
princi singh
Rajput-Ji
saurabh1990aror
importantly
rdtank
singhpalak2020
Hash
Strings
Technical Scripter
Hash
Strings
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Double Hashing
Rearrange an array such that arr[i] = i
Design a data structure that supports insert, delete, search and getRandom in constant time
Quadratic Probing in Hashing
Check if two arrays are equal or not
Write a program to reverse an array or string
Reverse a string in Java
Write a program to print all permutations of a given string
C++ Data Types
Longest Common Subsequence | DP-4