Dada la string str, la tarea es encontrar la frecuencia de todos los dígitos (0-9) en una string creada al concatenar los valores ASCII de cada carácter de la string dada str .
Ejemplo:
Entrada: str = “GeeksForGeeks”
Salida: 7 21 0 0 1 2 0 5 0 0
Explicación: La array de valores ASCII de todos los caracteres de la string dada es {71, 101, 101, 107, 115, 70, 111, 114 , 71, 101, 101, 107, 115}. Por lo tanto, la frecuencia del dígito 0 en la array es freq[0] = 7. De manera similar, freq[1] = 21, freq[2] = 4, freq[3] = 0, y así sucesivamente.Entrada: str = “Computadora123”
Salida: 3 15 1 0 2 2 2 2 0 2
Enfoque: El problema dado es un problema basado en la implementación y se puede resolver siguiendo los pasos dados:
- Cree una string asc , que almacene el valor ASCII de cada carácter .
- Recorra la string dada str , encuentre el valor ASCII de cada carácter y agréguelo a asc usando la función incorporada to string .
- Recorra la string asc y actualice la frecuencia del dígito actual almacenado en una array de frecuencia .
- Imprime la frecuencia de cada dígito.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program of the above approach #include <bits/stdc++.h> using namespace std; // Function to find the frequency of // all digits in the array of ASCII // values of all characters of str void digitFreq(string str) { // Stores the ASCII string string asc = ""; // Loop to traverse string for (auto x : str) { // Append ASCII value of // current string to asc asc += to_string((int)x); } // Stores frequency of digits int freq[10] = {}; // Loop to traverse asc for (auto x : asc) { freq[x - '0']++; } // Print frequency of each digit for (int i = 0; i < 10; i++) { cout << freq[i] << " "; } } // Driver Code int main() { string str; str = "GeeksForGeeks"; digitFreq(str); return 0; }
Java
// Java implementation of the above approach import java.util.*; public class GFG{ // Function to find the frequency of // all digits in the array of ASCII // values of all characters of str static void digitFreq(String str) { // Stores the ASCII string String asc = ""; char[] ch = str.toCharArray(); // Loop to traverse string for (int x : ch) { // Append ASCII value of // current string to asc asc += Integer.toString((int)x); } // Stores frequency of digits int[] freq = new int[10]; // Loop to traverse asc for(int i = 0; i < asc.length(); i++) { freq[asc.charAt(i) - '0']++; } // Print frequency of each digit for (int i = 0; i < 10; i++) { System.out.print(freq[i] + " "); } } // Driver Code public static void main(String args[]) { String str = "GeeksForGeeks"; digitFreq(str); } } // This code is contributed by Samim Hossain Mondal.
C#
// C# implementation of the above approach using System; class GFG{ // Function to find the frequency of // all digits in the array of ASCII // values of all characters of str static void digitFreq(string str) { // Stores the ASCII string string asc = ""; // Loop to traverse string foreach (int x in str) { // Append ASCII value of // current string to asc asc += ((int)x).ToString(); } // Stores frequency of digits int[] freq = new int[10]; // Loop to traverse asc foreach (int x in asc) { freq[x - '0']++; } // Print frequency of each digit for (int i = 0; i < 10; i++) { Console.Write(freq[i] + " "); } } // Driver Code public static void Main() { string str; str = "GeeksForGeeks"; digitFreq(str); } } // This code is contributed by sanjoy_62.
Python3
# Python code for the above approach # Function to find the frequency of # all digits in the array of ASCII # values of all characters of str def digitFreq(s): # Stores the ASCII string asc = "" # Loop to traverse string for x in range(len(s)): # Append ASCII value of # current string to asc asc = asc + str(int(ord(s[x]))) # Stores frequency of digits freq = [0]*10 # Loop to traverse asc for x in range(len(asc)): freq[ord(asc[x]) - ord('0')] = freq[ord(asc[x]) - ord('0')]+1 # Print frequency of each digit for i in range(10): print(freq[i], end=" ") # Driver Code s = "GeeksForGeeks" digitFreq(s) # This code is contributed by Potta Lokesh
Javascript
<script> // JavaScript program of the above approach // Function to find the frequency of // all digits in the array of ASCII // values of all characters of str const digitFreq = (str) => { // Stores the ASCII string let asc = ""; // Loop to traverse string for (let x in str) { // Append ASCII value of // current string to asc asc += str.charCodeAt(x).toString(); } // Stores frequency of digits let freq = new Array(10).fill(0); // Loop to traverse asc for (let x in asc) { freq[asc.charCodeAt(x) - '0'.charCodeAt(0)]++; } // Print frequency of each digit for (let i = 0; i < 10; i++) { document.write(`${freq[i]} `); } } // Driver Code str = "GeeksForGeeks"; digitFreq(str); // This code is contributed by rakeshsahni </script>
7 21 0 0 1 2 0 5 0 0
Complejidad temporal: O(N)
Espacio auxiliar: O(N)
Publicación traducida automáticamente
Artículo escrito por harshdeepmahajan88 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA