Print duplicate characters in a string

We have a string expression consisting of various characters in it. We want to count the repeated characters in this string and print it.

 

Example

String expression = "test string";
Here, the character 't' appears 3 times and 's' appears 2 times

 

Approach

  1. Create an empty Map to store character counts.
  2. Loop through each character in the input string.
  3. For each character encountered:
  1. Check if it's already in the data structure (the map).
  2. If it's not in the map, add it to the map with a count of 1.
  3. If it's already in the map, increment its count by 1.
  1. After processing the entire string:
  1. Examine the map.
  2. Identify characters with counts greater than 1; these are duplicates.
  1. Print or store the duplicate characters identified.

 

Complexity

  • Time Complexity: O(N), where N is the length of the input string.
  • Space Complexity: O(K), where K is the size of the map.

 

Java Code
import java.util.HashMap;
import java.util.Map;

public class CountRepeatedChars {

    public static void printDuplicateCharactersWithCount(String inputString) {

        char[] characters = inputString.toCharArray();
        Map<Character, Integer> charCountMap = new HashMap<>();

        // Count the occurrences of each character in the string
        for (char c : characters) {
            if (Character.isLetter(c)) { // Ignore non-letter characters if desired
                charCountMap.put(c, charCountMap.getOrDefault(c, 0) + 1);
            }
        }

        // Print characters with counts greater than 1 (duplicates)
        for (Map.Entry<Character, Integer> entry : charCountMap.entrySet()) {
            if (entry.getValue() > 1) {
                System.out.println("Character: " + entry.getKey() + ", Count: " + entry.getValue());
            }
        }
    }

    public static void main(String[] args) {

        String inputString = "test string";
        System.out.println("Duplicate characters in string \"" + inputString + "\" with their counts:");
        printDuplicateCharactersWithCount(inputString);
    }
}

Output

Duplicate characters in string "test string" with their counts:
Character: s, Count: 2
Character: t, Count: 3


Share Your Thoughts

Read More....
Find the no of islands in a 2D Array/Matrix
3 Sum
4 Sum - Find four elements that sum to a given target value
Best Time to Buy and Sell Stock
Ceiling in a sorted array
Check for balanced brackets or valid parenthesis in an expression
Browse all Fundesk DSA Curated Problems List articles

Stay Ahead

Only insights that save you time or money. No fluff, ever.

Stay Ahead

Only insights that save you time or money. No fluff.