Open In App

Convert a sentence into its equivalent mobile numeric keypad sequence

Given a sentence in the form of a string, convert it into its equivalent mobile numeric keypad sequence. 



Examples : 

Input: GEEKSFORGEEKS
Output: 4333355777733366677743333557777
Explanation: For obtaining a number, we need to press a number corresponding to that character for a number of times equal to the position of the character. For example, for character E, press number 3 two times and accordingly.



Input : HELLO WORLD
Output : 4433555555666096667775553

Approach: Follow the steps given below to convert a sentence into its equivalent mobile numeric keypad sequence. 

Below is the implementation of above method : 




// C++ implementation to convert a
// sentence into its equivalent
// mobile numeric keypad sequence
#include <bits/stdc++.h>
using namespace std;
 
// Function which computes the sequence
string printSequence(string arr[], string input)
{
    string output = "";
 
    // length of input string
    int n = input.length();
    for (int i = 0; i < n; i++) {
        // Checking for space
        if (input[i] == ' ')
            output = output + "0";
 
        else {
            // Calculating index for each
            // character
            int position = input[i] - 'A';
            output = output + arr[position];
        }
    }
 
    // Output sequence
    return output;
}
 
// Driver Code
int main()
{
    // storing the sequence in array
    string str[]
        = { "2",   "22""222", "3",   "33",   "333", "4",
            "44""444", "5",   "55""555""6",   "66",
            "666", "7",   "77""777", "7777", "8",   "88",
            "888", "9",   "99""999", "9999" };
 
    string input = "GEEKSFORGEEKS";
    cout << printSequence(str, input);
    return 0;
}




// Java implementation to convert a
// sentence into its equivalent
// mobile numeric keypad sequence
import java.util.*;
 
class GFG {
 
    // Function which computes the sequence
    static String printSequence(String arr[], String input)
    {
        String output = "";
 
        // length of input string
        int n = input.length();
        for (int i = 0; i < n; i++) {
            // Checking for space
            if (input.charAt(i) == ' ')
                output = output + "0";
 
            else {
                // Calculating index for each
                // character
                int position = input.charAt(i) - 'A';
                output = output + arr[position];
            }
        }
 
        // Output sequence
        return output;
    }
 
    // Driver Code
    public static void main(String[] args)
    {
        // storing the sequence in array
        String str[]
            = { "2",    "22""222", "3",   "33", "333",
                "4",    "44""444", "5",   "55", "555",
                "6",    "66""666", "7",   "77", "777",
                "7777", "8",   "88""888", "9""99",
                "999""9999" };
 
        String input = "GEEKSFORGEEKS";
        System.out.println(printSequence(str, input));
    }
}
 
// This code is contributed by Gitanjali.




# Python3 implementation to convert
# a sentence into its equivalent
# mobile numeric keypad sequence
 
# Function which computes the
# sequence
 
 
def printSequence(arr, input):
 
    # length of input string
    n = len(input)
    output = ""
 
    for i in range(n):
 
        # checking for space
        if(input[i] == ' '):
            output = output + "0"
        else:
            # calculating index for each
            # character
            position = ord(input[i]) - ord('A')
            output = output + arr[position]
    # output sequence
    return output
 
 
# Driver code
str = ["2", "22", "222",
       "3", "33", "333",
       "4", "44", "444",
       "5", "55", "555",
       "6", "66", "666",
       "7", "77", "777", "7777",
       "8", "88", "888",
       "9", "99", "999", "9999"]
 
input = "GEEKSFORGEEKS"
print(printSequence(str, input))
 
# This code is contributed by upendra bartwal




// C# implementation to convert a
// sentence into its equivalent
// mobile numeric keypad sequence
using System;
 
class GFG {
 
    // Function which computes the sequence
    static String printSequence(string[] arr, string input)
    {
        string output = "";
 
        // length of input string
        int n = input.Length;
        for (int i = 0; i < n; i++) {
            // Checking for space
            if (input[i] == ' ')
                output = output + "0";
 
            else {
                // Calculating index for each
                // character
                int position = input[i] - 'A';
                output = output + arr[position];
            }
        }
 
        // Output sequence
        return output;
    }
 
    // Driver Code
    public static void Main()
    {
        // storing the sequence in array
        string[] str
            = { "2",    "22""222", "3",   "33", "333",
                "4",    "44""444", "5",   "55", "555",
                "6",    "66""666", "7",   "77", "777",
                "7777", "8",   "88""888", "9""99",
                "999""9999" };
 
        string input = "GEEKSFORGEEKS";
        Console.WriteLine(printSequence(str, input));
    }
}
 
// This code is contributed by vt_m.




<script>
 
// Javascript implementation to convert a
// sentence into its equivalent
// mobile numeric keypad sequence
     
    // Function which computes the sequence
    function printSequence(arr,input)
    {
        let output = "";
       
        // length of input string
        let n = input.length;
        for (let i = 0; i < n; i++)
        {
            // Checking for space
            if (input[i] == ' ')
                output = output + "0".charCodeAt(0);
       
            else
            {
                // Calculating index for each
                // character
                let position = input[i].charCodeAt(0) - 'A'.charCodeAt(0);
                output = output + arr[position];
            }
        }
       
        // Output sequence
        return output;
    }
     
    // Driver Function
    let str = ["2", "22", "222",
       "3", "33", "333",
       "4", "44", "444",
       "5", "55", "555",
       "6", "66", "666",
       "7", "77", "777", "7777",
       "8", "88", "888",
       "9", "99", "999", "9999" ]
     
    let input = "GEEKSFORGEEKS";
    document.write(printSequence(str, input));
     
    // This code is contributed by avanitrachhadiya2155
</script>




<?php
// PHP implementation to convert a
// sentence into its equivalent
// mobile numeric keypad sequence
 
// Function which computes the sequence
function printSequence(&$arr, $input)
{
    $output = "";
 
    // length of input string
    $n = strlen($input);
    for ($i = 0; $i < $n; $i++)
    {
        // Checking for space
        if ($input[$i] == ' ')
            $output = $output + "0";
 
        else
        {
            // Calculating index for each
            // character
            $position = ord($input[$i]) - ord('A');
            $output = $output . $arr[$position];
        }
    }
 
    // Output sequence
    return $output;
}
 
// Driver Code
 
// storing the sequence in array
$str = array("2","22","222", "3","33","333",
             "4","44","444", "5","55","555",
             "6","66","666", "7","77","777","7777",
             "8","88","888", "9","99","999","9999");
 
$input = "GEEKSFORGEEKS";
echo printSequence($str, $input);
 
// This code is contributed by ita_c
?>

Output
4333355777733366677743333557777

Time complexity: O(N), For traversing the string
Auxiliary Space: O(1)


Article Tags :