Encuentre la frecuencia de cada dígito 0-9 concatenando los valores ASCII de la string dada

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>
Producción

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *