Related Articles
Remove odd frequency characters from the string
• Last Updated : 05 Nov, 2020

Given string str of size N, the task is to remove all the characters from the string that have odd frequencies.

Examples:

Input: str = “geeksforgeeks”
Output: geeksgeeks
The characters f, o, r have odd frequencies
So, they are removed from the string.

Input: str = “zzzxxweeerr”
Output: xxrr

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 odd frequencies with the help of the map.
• Ignore all those characters which have odd frequencies and store the rest in a new string.
• Finally, display the new string.

Below is the implementation of the above approach:

## C++

 `// C++ program to remove the characters` `// having odd frequencies in the string` `#include ` `using` `namespace` `std;`   `// Function to remove the characters which` `// have odd frequencies in the string` `string removeOddFrequencyCharacters(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 odd frequencies` `    ``for` `(``int` `i = 0; i < s.length(); i++) {`   `        ``// If the character has` `        ``// odd frequency then skip` `        ``if` `(m[s[i]] & 1)` `            ``continue``;`   `        ``// Else concatenate the` `        ``// character to the new string` `        ``new_string += s[i];` `    ``}`   `    ``// Return the modified string` `    ``return` `new_string;` `}`   `// Driver code` `int` `main()` `{` `    ``string str = ``"geeksforgeeks"``;`   `    ``// Remove the characters which` `    ``// have odd frequencies` `    ``str = removeOddFrequencyCharacters(str);` `    ``cout << str << ``"\n"``;`   `    ``return` `0;` `}`

## Java

 `// Java program to remove the characters` `// having odd frequencies in the string` `import` `java.util.*;`   `class` `GFG ` `{` `     `  `    ``// Function to remove the characters which` `    ``// have odd frequencies in the string` `    ``static` `String removeOddFrequencyCharacters(String s)` `    ``{` `        ``// Create a map to store the` `        ``// frequency of each character` `        ``HashMap m = ``new` `HashMap();` `        ``for` `(``int` `i = ``0``; i < s.length(); i++) {` `            ``char` `p = s.charAt(i);` `            ``Integer count = m.get(p);` `            ``if``( count == ``null``)` `            ``{` `                ``count=``0``;` `                ``m.put(p,``1``);` `            ``}` `            ``else` `                ``m.put(p,count + ``1``);` `        ``}` `     `  `        ``// To store the new string` `        ``String new_string = ``""``;` `     `  `        ``// Remove the characters which` `        ``// have odd frequencies` `        ``for` `(``int` `i = ``0``; i < s.length(); i++) {` `     `  `            ``// If the character has` `            ``// odd frequency then skip` `            ``if` `((m.get(s.charAt(i))& ``1``)==``1``)` `                ``continue``;` `     `  `            ``// Else concatenate the` `            ``// character to the new string` `            ``new_string += s.charAt(i);` `        ``}` `     `  `        ``// Return the modified string` `        ``return` `new_string;` `    ``}` `     `  `    ``// Driver code` `    ``public` `static` `void` `main(String []args)` `    ``{` `        ``String str = ``"geeksforgeeks"``;` `     `  `        ``// Remove the characters which` `        ``// have odd frequencies` `        ``str = removeOddFrequencyCharacters(str);` `        ``System.out.print(str);` `    ``}` `}`   `// This is contributed by chitranayal`

## Python3

 `# Python3 program to remove the characters` `# having odd frequencies in the string`   `# Function to remove the characters which` `# have odd frequencies in the string` `def` `removeOddFrequencyCharacters(s):` `    `  `    ``# Create a map to store the` `    ``# frequency of each character` `    ``m ``=` `dict``()` `    ``for` `i ``in` `s:` `        ``m[i] ``=` `m.get(i, ``0``) ``+` `1`   `    ``# To store the new string` `    ``new_s ``=` `""`   `    ``# Remove the characters which` `    ``# have odd frequencies` `    ``for` `i ``in` `s:`   `        ``# If the character has` `        ``# odd frequency then skip` `        ``if` `(m[i] & ``1``):` `            ``continue`   `        ``# Else concatenate the` `        ``# character to the new string` `        ``new_s ``+``=` `i`   `    ``# Return the modified string` `    ``return` `new_s`   `# Driver code` `if` `__name__ ``=``=` `'__main__'``:` `    ``str` `=` `"geeksforgeeks"`   `    ``# Remove the characters which` `    ``# have odd frequencies` `    ``str` `=` `removeOddFrequencyCharacters(``str``)` `    ``print``(``str``)`   `# This code is contributed by mohit kumar 29`

## C#

 `// C# program to remove the characters` `// having odd frequencies in the string` `using` `System;` `using` `System.Collections.Generic;`   `class` `GFG{` `      `  `// Function to remove the characters which` `// have odd frequencies in the string` `static` `string` `removeOddFrequencyCharacters(``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++)` `    ``{` `        ``char` `p = s[i];` `        `  `        ``if` `(m.ContainsKey(p))` `        ``{` `            ``m[p]++;` `        ``}` `        ``else` `        ``{` `            ``m[p] = 1;` `        ``}` `    ``}` `  `  `    ``// To store the new string` `    ``string` `new_string = ``""``;` `  `  `    ``// Remove the characters which` `    ``// have odd frequencies` `    ``for``(``int` `i = 0; i < s.Length; i++)` `    ``{` `        `  `        ``// If the character has` `        ``// odd frequency then skip` `        ``if` `((m[s[i]] & 1) == 1)` `            ``continue``;` `  `  `        ``// Else concatenate the` `        ``// character to the new string` `        ``new_string += s[i];` `    ``}` `  `  `    ``// Return the modified string` `    ``return` `new_string;` `}` `  `  `// Driver code` `public` `static` `void` `Main(``string` `[]args)` `{` `    ``string` `str = ``"geeksforgeeks"``;` `  `  `    ``// Remove the characters which` `    ``// have odd frequencies` `    ``str = removeOddFrequencyCharacters(str);` `    `  `    ``Console.Write(str);` `}` `}`   `// This code is contributed by rutvik_56`

Output:

```geeksgeeks

```

Attention reader! Don’t stop learning now. Get hold of all the important C++ Foundation and STL concepts with the C++ Foundation and STL courses at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :