Program to check if all characters have even frequency

• Last Updated : 24 May, 2021

Given a string S consisting only of lowercase letters check if the string has all characters appearing even times.
Examples:

Input : abaccaba
Output : Yes
Explanation: ‘a’ occurs four times, ‘b’ occurs twice, ‘c’ occurs twice and the other letters occur zero times.
Input : hthth
Output : No

Approach:
We will go through the string and count the occurrence of all characters after that we will check if the occurrences are even or not if there is any odd frequency character then we immediately print No.

C++

 // C++ implementation of the above approach#include using namespace std; bool check(string s){         // creating a frequency array    int freq = {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 Codeint 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 approachclass GFG{    static boolean check(String s)    {         // creating a frequency array        int[] freq = new int;         // 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 approachdef check(s):     # creating a frequency array    freq =*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 codes ="abaccaba"if(check(s)):    print("Yes")else:    print("No")

C#

 // C# implementation of the approachusing System;     class GFG{    static Boolean check(String s)    {         // creating a frequency array        int[] freq = new int;         // 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



Output:

Yes

Method #2:Using built in python functions.

Approach:

We will scan the string and count the occurrence of all characters using the built-in Counter() function after that we traverse the counter list and check if the occurrences are even or not if there is any odd frequency character then we immediately print No.

Note: This method is applicable for all type of characters

Python3

 # Python implementation for# the above approach # importing Counter functionfrom collections import Counter # Function to check if all# elements occur even timesdef 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 codes = "geeksforgeeksfor"if(checkString(s)):    print("Yes")else:    print("No")     # This code is contributed by vikkycirus

Output:

Yes

My Personal Notes arrow_drop_up