Print characters having even frequencies in order of occurrence
Given a string str containing only lowercase characters. The task is to print the characters having an even frequency in the order of their occurrence.
Note: Repeated elements with even frequency are printed as many times they occur in order of their occurrences.
Examples:
Input: str = “geeksforgeeks”
Output: geeksgeeks
Character Frequency ‘g’ 2 ‘e’ 4 ‘k’ 2 ‘s’ 2 ‘f’ 1 ‘o’ 1 ‘r’ 1 ‘g’, ‘e’, ‘k’ and ‘s’ are the only characters with even frequencies.
Input: str = “aeroplane”
Output: aeae
Approach: Create a frequency array to store the frequency of each of the character of the given string str. Traverse the string str again and check whether the frequency of that character is even. If yes, then print the character.
Below is the implementation of the above approach:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; #define SIZE 26 // Function to print the even frequency characters // in the order of their occurrence void printChar(string str, int n) { // To store the frequency of each of // the character of the string int freq[SIZE]; // Initialize all elements of freq[] to 0 memset (freq, 0, sizeof (freq)); // Update the frequency of each character for ( int i = 0; i < n; i++) freq[str[i] - 'a' ]++; // Traverse str character by character for ( int i = 0; i < n; i++) { // If frequency of current character is even if (freq[str[i] - 'a' ] % 2 == 0) { cout << str[i]; } } } // Driver code int main() { string str = "geeksforgeeks" ; int n = str.length(); printChar(str, n); return 0; } |
Java
// Java implementation of the approach import java.util.*; class GFG { static int SIZE = 26 ; // Function to print the even frequency characters // in the order of their occurrence static void printChar(String str, int n) { // To store the frequency of each of // the character of the string int []freq = new int [SIZE]; // Update the frequency of each character for ( int i = 0 ; i < n; i++) freq[str.charAt(i) - 'a' ]++; // Traverse str character by character for ( int i = 0 ; i < n; i++) { // If frequency of current character is even if (freq[str.charAt(i) - 'a' ] % 2 == 0 ) { System.out.print(str.charAt(i)); } } } // Driver code public static void main(String[] args) { String str = "geeksforgeeks" ; int n = str.length(); printChar(str, n); } } // This code is contributed by 29AjayKumar |
Python3
# Python3 implementation of the approach SIZE = 26 # Function to print the even frequency characters # in the order of their occurrence def printChar(string, n): # To store the frequency of each of # the character of the stringing # Initialize all elements of freq[] to 0 freq = [ 0 ] * SIZE # Update the frequency of each character for i in range ( 0 , n): freq[ ord (string[i]) - ord ( 'a' )] + = 1 # Traverse string character by character for i in range ( 0 , n): # If frequency of current character is even if (freq[ ord (string[i]) - ord ( 'a' )] % 2 = = 0 ): print (string[i], end = "") # Driver code if __name__ = = '__main__' : string = "geeksforgeeks" n = len (string) printChar(string, n) # This code is contributed by Ashutosh450 |
C#
// C# implementation of the approach using System; using System.Collections.Generic; class GFG { static int SIZE = 26; // Function to print the even frequency characters // in the order of their occurrence static void printChar(String str, int n) { // To store the frequency of each of // the character of the string int []freq = new int [SIZE]; // Update the frequency of each character for ( int i = 0; i < n; i++) freq[str[i] - 'a' ]++; // Traverse str character by character for ( int i = 0; i < n; i++) { // If frequency of current character is even if (freq[str[i] - 'a' ] % 2 == 0) { Console.Write(str[i]); } } } // Driver code public static void Main(String[] args) { String str = "geeksforgeeks" ; int n = str.Length; printChar(str, n); } } // This code is contributed by Princi Singh |
geeksgeeks
Time Complexity: O(n)
Auxiliary Space: O(1)
Recommended Posts:
- Print characters having odd frequencies in order of occurrence
- Print characters and their frequencies in order of occurrence
- Print characters having prime frequencies in order of occurrence
- Print characters and their frequencies in order of occurrence using a LinkedHashMap in Java
- Print 2-D co-ordinate points in ascending order followed by their frequencies
- Print the last occurrence of elements in array in relative order
- Print characters in decreasing order of frequency
- Print all distinct characters of a string in order (3 Methods)
- Print common characters of two Strings in alphabetical order
- Python code to print common characters of two Strings in alphabetical order
- Queries for frequencies of characters in substrings
- XOR of Prime Frequencies of Characters in a String
- Check whether the frequencies of all the characters in a string are prime or not
- Sum and Product of Prime Frequencies of Characters in a String
- Character whose frequency is equal to the sum of frequencies of other characters of the given string
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.