Converta uma frase em sua sequência equivalente do teclado numérico móvel
Dada uma frase na forma de uma string, converta-a em sua sequência de teclado numérico móvel equivalente.
Exemplos :
Input : GEEKSFORGEEKS Output : 4333355777733366677743333557777 For obtaining a number, we need to press a number corresponding to that character for number of times equal to position of the character. For example, for character C, we press number 2 three times and accordingly. Input : HELLO WORLD Output : 4433555555666096667775553
Siga as etapas fornecidas abaixo para converter uma frase em sua sequência equivalente do teclado numérico móvel.
- Para cada caractere, armazene a sequência que deve ser obtida em sua respectiva posição em uma array, ou seja, para Z, armazene 9999. Para Y, armazene 999. Para K, armazene 55 e assim por diante.
- Para cada caractere, subtraia o valor ASCII de 'A' e obtenha a posição na array apontada
por aquele caractere e adicione a sequência armazenada nessa array a uma string. - Se o caractere for um espaço, armazene 0
- Imprima a seqüência geral.
Abaixo está a implementação do método acima:
// 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 function
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 Function
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 Function
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.
<?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
?>
<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>
Saída :
4333355777733366677743333557777
Complexidade de tempo: O (n)
<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="374" src="https://www.youtube.com/embed/hE4Nn7o4GFw?feature=oembed" width="665"></iframe>
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva