Programa para comprobar si todos los caracteres tienen la misma frecuencia

Dada una string S que consta solo de letras minúsculas, compruebe si la string tiene todos los caracteres que aparecen incluso veces. 
Ejemplos:

Entrada: abaccaba 
Salida: Sí 
Explicación: ‘a’ aparece cuatro veces, ‘b’ aparece dos veces, ‘c’ aparece dos veces y las otras letras aparecen cero veces.
Entrada : hthth 
Salida : No

Enfoque: Revisaremos 
la string y contaremos la ocurrencia de todos los caracteres, luego verificaremos si las ocurrencias son pares o no, si hay algún carácter de frecuencia impar, inmediatamente imprimiremos No.  

C++

// C++ implementation of the above approach
#include <iostream>
using namespace std;
 
bool check(string s)
{
     
    // creating a frequency array
    int freq[26] = {0};
     
    // Finding length of s
    int n = s.length();
    for (int i = 0; i < s.length(); i++)
     
    // counting frequency of all characters
        freq[s[i] - 97]++;
     
    // checking if any odd frequency
    // is there or not
    for (int i = 0; i < 26; i++)
        if (freq[i] % 2 == 1)
        return false;
    return true;
}
 
// Driver Code
int main()
{
    string s = "abaccaba";
    check(s) ? cout << "Yes" << endl :
               cout << "No" << endl;
    return 0;
}
 
// This code is contributed by
// sanjeev2552

Java

// Java implementation of the above approach
class GFG
{
    static boolean check(String s)
    {
 
        // creating a frequency array
        int[] freq = new int[26];
 
        // Finding length of s
        int n = s.length();
 
        // counting frequency of all characters
        for (int i = 0; i < s.length(); i++)
        {
            freq[(s.charAt(i)) - 97] += 1;
        }
 
        // checking if any odd frequency
        // is there or not
        for (int i = 0; i < freq.length; i++)
        {
            if (freq[i] % 2 == 1)
            {
                return false;
            }
        }
        return true;
    }
 
    // Driver Code
    public static void main(String[] args)
    {
        String s = "abaccaba";
        if (check(s))
        {
            System.out.println("Yes");
        }
        else
        {
            System.out.println("No");
        }
    }
}
 
// This code is contributed by Rajput-Ji

Python3

# Python implementation of the above approach
def check(s):
 
    # creating a frequency array
    freq =[0]*26
 
    # Finding length of s
    n = len(s)
 
    for i in range(n):
 
        # counting frequency of all characters
        freq[ord(s[i])-97]+= 1
 
    for i in range(26):
 
        # checking if any odd frequency
        # is there or not
        if (freq[i]% 2 == 1):
            return False
    return True
 
# Driver code
s ="abaccaba"
if(check(s)):
    print("Yes")
else:
    print("No")

C#

// C# implementation of the approach
using System;
     
class GFG
{
    static Boolean check(String s)
    {
 
        // creating a frequency array
        int[] freq = new int[26];
 
        // Finding length of s
        int n = s.Length;
 
        // counting frequency of all characters
        for (int i = 0; i < s.Length; i++)
        {
            freq[(s[i]) - 97] += 1;
        }
 
        // checking if any odd frequency
        // is there or not
        for (int i = 0; i < freq.Length; i++)
        {
            if (freq[i] % 2 == 1)
            {
                return false;
            }
        }
        return true;
    }
 
    // Driver Code
    public static void Main(String[] args)
    {
        String s = "abaccaba";
        if (check(s))
        {
            Console.WriteLine("Yes");
        }
        else
        {
            Console.WriteLine("No");
        }
    }
}
 
// This code is contributed by PrinciRaj1992

Javascript

<script>
  
// JavaScript implementation of the above approach
 
function check(s)
{
     
    // creating a frequency array
    var freq = Array(26).fill(0);
     
    // Finding length of s
    var n = s.length;
    for (var i = 0; i < s.length; i++)
     
    // counting frequency of all characters
        freq[s[i] - 97]++;
     
    // checking if any odd frequency
    // is there or not
    for (var i = 0; i < 26; i++)
        if (freq[i] % 2 == 1)
        return false;
    return true;
}
 
// Driver Code
var s = "abaccaba";
check(s) ? document.write("Yes") :
           document.write("No");
 
</script>

Producción: 

Yes

Método n.º 2: uso de funciones integradas de python.

Enfoque :

Escanearemos la string y contaremos la ocurrencia de todos los caracteres usando la función Counter() incorporada, luego recorremos la lista de contadores y verificamos si las ocurrencias son pares o no, si hay algún carácter de frecuencia impar e inmediatamente imprimimos No. 

Nota: Este método es aplicable para todo tipo de caracteres

Python3

# Python implementation for
# the above approach
 
# importing Counter function
from collections import Counter
 
# Function to check if all
# elements occur even times
def checkString(s):
   
    # Counting the frequency of all
    # character using Counter function
    frequency = Counter(s)
     
    # Traversing frequency
    for i in frequency:
       
        # Checking if any element
        # has odd count
        if (frequency[i] % 2 == 1):
            return False
    return True
 
 
# Driver code
s = "geeksforgeeksfor"
if(checkString(s)):
    print("Yes")
else:
    print("No")
     
# This code is contributed by vikkycirus

Salida :

Yes

Publicación traducida automáticamente

Artículo escrito por indrajit1 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 *