Java program to print all duplicate characters in a string
Given a string, the task is to write Java program to print all the duplicate characters with their frequency Example:
Input: str = “w3wiki” Output: s : 2 e : 4 g : 2 k : 2 Input: str = “java” Output: a : 2
- Create a hashMap of type {char, int}.
- Traverse the string, check if the hashMap already contains the traversed character or not.
- If it is present, then increment the count or else insert the character in the hashmap with frequency = 1.
- Now traverse through the hashmap and look for the characters with frequency more than 1. Print these characters with their respective frequencies.
Below is the implementation of the above approach:
Java
// Java program for the above approach import java.util.*; class GFG { // Function to print all duplicate // characters in string using HashMap public static void countDuplicateCharacters(String str) { // Creating a HashMap containing char // as a key and occurrences as a value Map<Character, Integer> map = new HashMap<Character, Integer>(); // Converting given string into // a char array char [] charArray = str.toCharArray(); // Checking each character // of charArray for ( char c : charArray) { if (map.containsKey(c)) { // If character is present // in map incrementing it's // count by 1 map.put(c, map.get(c) + 1 ); } else { // If character is not present // in map putting this // character into map with // 1 as it's value. map.put(c, 1 ); } } // Traverse the HashMap, check // if the count of the character // is greater than 1 then print // the character and its frequency for (Map.Entry<Character, Integer> entry : map.entrySet()) { if (entry.getValue() > 1 ) { System.out.println(entry.getKey() + " : " + entry.getValue()); } } } // Driver Code public static void main(String args[]) { // Given String str String str = "w3wiki" ; // Function Call countDuplicateCharacters(str); } } |
Output:
s : 2 e : 4 g : 2 k : 2
Time Complexity: O(NlogN)
Auxiliary Space: O(N) since using Map
Contact Us