Convert a sentence into its equivalent mobile numeric keypad sequence (original) (raw)
Last Updated : 18 Jan, 2024
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.
- For each character, store the sequence which should be obtained at its respective position in an array, i.e. for Z, store 9999. For Y, store 999. For K, store 55 and so on.
- For each character, subtract ASCII value of 'A' and obtain the position in the array pointed
by that character and add the sequence stored in that array to a string. - If the character is a space, store 0
- Print the overall sequence.
Below is the implementation of above method :
C++ `
// 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
// 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
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 outputDriver 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#
// 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.
JavaScript
PHP
`
Output
4333355777733366677743333557777
**Time complexity: O(N), For traversing the string
**Auxiliary Space: O(1)