May 2, 2022

Question 5 : How to find duplicate characters in String in java?

 Solution:  Here is a solution to find duplicate characters in String.

  1. Create a HashMap and the character of String will be inserted as key and its count as value.
  2. If HashMap already contains char, increase its count by 1, else put char in HashMap.
  3. If the value of Char is more than 1, that means it is a duplicate character in that String.

Java Program to find duplicate Characters in a String:

import java.util.HashMap; import java.util.Map; import java.util.Set; public class DuplicateCharFinder { public void findIt(String str) { Map<Character, Integer> baseMap = new HashMap<Character, Integer>(); char[] charArray = str.toCharArray(); for (Character ch : charArray) { if (baseMap.containsKey(ch)) { baseMap.put(ch, baseMap.get(ch) + 1); } else { baseMap.put(ch, 1); } } Set<Character> keys = baseMap.keySet(); for (Character ch : keys) { if (baseMap.get(ch) > 1) { System.out.println(ch + " is " + baseMap.get(ch) + " times"); } } } public static void main(String a[]) { DuplicateCharFinder dcf = new DuplicateCharFinder(); dcf.findIt("India is my country"); } }

Python code 
def find_duplicates(s: str): freq = {} for ch in s: freq[ch] = freq.get(ch, 0) + 1 for ch, count in freq.items(): if count > 1: print(f"{ch} -> {count}") if __name__ == "__main__": find_duplicates("cloudtechtwitter")

📌 Final Comparison
Approach Time Complexity Space Complexity Best Use
Frequency Map (HashMap / Dictionary) O(n) O(k) ⭐ Best & general solution
Sorting characters O(n log n) O(n) Simple but slower
indexOf & lastIndexOf O(n²) O(1) ❌ Avoid for large input
ASCII frequency array O(n) O(1) Fastest for ASCII only

You may also like

Kubernetes Microservices
Python AI/ML
Spring Framework Spring Boot
Core Java Java Coding Question
Maven AWS