Related Articles
Remove even frequency characters from the string
• Difficulty Level : Basic
• Last Updated : 01 Apr, 2021

Given a string ‘str’, the task is to remove all the characters from the string that have even frequencies.
Examples:

```Input: str = "aabbbddeeecc"
Output: bbbeee
The characters a, d, c have even frequencies
So, they are removed from the string.

Input: str = "zzzxxweeerr"
Output: zzzweee```

Approach:

• Create a map and store the frequency of each character from the string to the same map.
• Then, traverse the string and find out which characters have even frequencies with the help of the map.
• Ignore all those characters which have even frequencies and store the rest in a new string.
• Finally, display the new string.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;` `// Function that removes the``// characters which have even``// frequencies in the string``void` `solve(string s)``{``    ``// create a map to store the``    ``// frequency of each character``    ``unordered_map<``char``, ``int``> m;``    ``for` `(``int` `i = 0; i < s.length(); i++) {``        ``m[s[i]]++;``    ``}` `    ``// to store the new string``    ``string new_string = ``""``;` `    ``// remove the characters which``    ``// have even frequencies``    ``for` `(``int` `i = 0; i < s.length(); i++) {` `        ``// if the character has``        ``// even frequency then skip``        ``if` `(m[s[i]] % 2 == 0)``            ``continue``;` `        ``// else concatenate the``        ``// character to the new string``        ``new_string += s[i];``    ``}` `    ``// display the modified string``    ``cout << new_string << endl;``}` `// Driver code``int` `main()``{``    ``string s = ``"aabbbddeeecc"``;` `    ``// remove the characters which``    ``// have even frequencies``    ``solve(s);` `    ``return` `0;``}`

## Java

 `// Java implementation of the approach``import` `java.util.*;` `class` `GFG``{``    ``// Function that removes the``    ``// characters which have even``    ``// frequencies in the string``    ``static` `void` `solve(String s)``    ``{``        ``// create a map to store the``        ``// frequency of each character``        ``HashMap m = ``new` `HashMap<>();``        ` `        ``for` `(``int` `i = ``0``; i < s.length(); i++)``        ``{``            ``if``(m.containsKey(s.charAt(i)))``                        ``m.put(s.charAt(i),``                        ``m.get(s.charAt(i)) + ``1``);``            ``else``                ``m.put(s.charAt(i), ``1``);``        ``}``    ` `        ``// to store the new string``        ``String new_string = ``""``;``    ` `        ``// remove the characters which``        ``// have even frequencies``        ``for` `(``int` `i = ``0``; i < s.length(); i++)``        ``{``    ` `            ``// if the character has``            ``// even frequency then skip``            ``if` `(m.get(s.charAt(i)) % ``2` `== ``0``)``                ``continue``;``    ` `            ``// else concatenate the``            ``// character to the new string``            ``new_string = new_string + s.charAt(i);``        ``}``    ` `        ``// display the modified string``        ``System.out.println(new_string);``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `main(String []args)``    ``{``        ``String s = ``"aabbbddeeecc"``;``    ` `        ``// remove the characters which``        ``// have even frequencies``        ``solve(s);``    ``}``}` `// This code is contributed by ihritik`

## Python3

 `# Python3 implementation of``# above approach` `# Function that removes the``# characters which have even``# frequencies in the string``def` `solve(s):``    ` `    ``# create a map to store the``    ``# frequency of each character``    ``m ``=` `dict``()``    ``for` `i ``in` `range``(``len``(s)):``        ``if` `s[i] ``in` `m:``            ``m[s[i]] ``=` `m[s[i]]``+``1``        ``else``:``            ``m[s[i]] ``=` `1``            ` `    ``# to store the new string``    ``new_string ``=` `""``    ` `    ``# remove the characters which``    ``# have even frequencies``    ``for` `i ``in` `range``(``len``(s)):``        ` `        ``# if the character has``        ``# even frequency then skip``        ``if` `m[s[i]]``%``2` `=``=` `0``:``            ``continue``        ` `        ``# else concatenate the``        ``# character to the new string``        ``new_string ``=` `new_string``+``s[i]``        ` `    ``# display the modified string``    ``print``(new_string)``    ` `#Driver code``if` `__name__``=``=``'__main__'``:``    ``s ``=` `"aabbbddeeecc"` `# remove the characters which``# have even frequencies``    ``solve(s)` `# this code is contributed by``# Shashank_Sharma`

## C#

 `// C# implementation of the approach``using` `System;``using` `System.Collections.Generic;` `class` `GFG``{``    ``// Function that removes the``    ``// characters which have even``    ``// frequencies in the string``    ``static` `void` `solve(String s)``    ``{``        ``// create a map to store the``        ``// frequency of each character``        ``Dictionary<``char``, ``int``> m = ``new` `Dictionary<``char``, ``int``>();``        ` `        ``for` `(``int` `i = 0; i < s.Length; i++)``        ``{``            ``if``(m.ContainsKey(s[i]))``            ``{``                ``var` `val = m[s[i]];``                ``m.Remove(s[i]);``                ``m.Add(s[i], val + 1);``                ` `            ``}        ``            ``else``                ``m.Add(s[i], 1);``        ``}``    ` `        ``// to store the new string``        ``String new_string = ``""``;``    ` `        ``// remove the characters which``        ``// have even frequencies``        ``for` `(``int` `i = 0; i < s.Length; i++)``        ``{``    ` `            ``// if the character has``            ``// even frequency then skip``            ``if` `(m[s[i]] % 2 == 0)``                ``continue``;``    ` `            ``// else concatenate the``            ``// character to the new string``            ``new_string = new_string + s[i];``        ``}``    ` `        ``// display the modified string``        ``Console.WriteLine(new_string);``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `Main(String []args)``    ``{``        ``String s = ``"aabbbddeeecc"``;``    ` `        ``// remove the characters which``        ``// have even frequencies``        ``solve(s);``    ``}``}` `// This code has been contributed by 29AjayKumar`
Output:
`bbbeee`

Time Complexity: O(N)
Auxiliary Space: O(N)

#### Method #2: Using Built-in Python Functions

• Calculate the frequency of all characters using Counter() function.
• Then, traverse the string and find out which characters have even frequencies with the help of the map.
• Ignore all those characters which have even frequencies and store the rest in a new string.
• Finally, display the new string.

Below is the implementation:

## Python3

 `# Python3 implementation of``# above approach``from` `collections ``import` `Counter` `# Function that removes the``# characters which have even``# frequencies in the string``def` `removeEven(s):` `    ``# Calculate the frequency using Counter function``    ``# to store the new string``    ``m ``=` `Counter(s)``    ``new_string ``=` `""` `    ``# Remove the characters which``    ``# have even frequencies``    ``for` `i ``in` `range``(``len``(s)):``        ``if``(m[s[i]] ``%` `2` `!``=` `0``):``          ` `            ``# Concatenate the character to the new string``            ``new_string ``=` `new_string``+``s[i]` `    ``# display the modified string``    ``print``(new_string)`  `# Driver code``if` `__name__ ``=``=` `'__main__'``:``    ``s ``=` `"aabbbddeeecc"` `# remove the characters which``# have even frequencies``    ``removeEven(s)` `# this code is contributed by vikkycirus`

Output:

`bbbeee`

Time Complexity: O(N)

Auxiliary Space: O(N)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price.

In case you wish to attend live classes with industry experts, please refer Geeks Classes Live and Geeks Classes Live USA

My Personal Notes arrow_drop_up