Skip to main content

Top Java Interview Question: First Non-Repeating Character in a String

 

🔹 Introduction

Java interviews often include string-based questions. One of the most commonly asked questions is:

👉 Find the first non-repeating character in a string.

In this article, we will solve it step by step in a simple and easy-to-understand way.


🔹 Problem Statement

Given a string, find the first character that does not repeat.

Example:

Input: aabbcde
Output: c

🔹 Approach

To solve this problem efficiently:

  1. Count frequency of each character
  2. Maintain insertion order
  3. Traverse again to find the first character with frequency = 1

👉 We use LinkedHashMap because:

  • It maintains insertion order
  • Helps us find the first non-repeating character

🔹 Java Code

import java.util.*;

public class FirstNonRepeating {
public static void main(String[] args) {
String str = "aabbcde";

Map<Character, Integer> map = new LinkedHashMap<>();

// Count frequency
for (char ch : str.toCharArray()) {
map.put(ch, map.getOrDefault(ch, 0) + 1);
}

// Find first non-repeating
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
if (entry.getValue() == 1) {
System.out.println("First non-repeating character: " + entry.getKey());
break;
}
}
}
}

🔹 Output

First non-repeating character: c

🔹 Time Complexity

  • O(n) → Efficient solution

🔹 Key Takeaways

✔ Use LinkedHashMap to maintain order
✔ Two-pass solution is optimal
✔ Very commonly asked interview question


🔹 Conclusion

This is a must-know Java interview problem. Practice similar questions to strengthen your problem-solving skills.

Comments

Popular posts from this blog

Java Interview Question: Separate Even and Odd Numbers Using Streams (With Examples)

  🔹 Introduction Separating even and odd numbers is a common Java interview question. It helps test your understanding of Java Streams, filtering, and partitioning . 👉 In this article, we will solve this using: Traditional approach Java Streams (modern approach) 🔹 Problem Statement Given a list of integers, separate even and odd numbers. Example: Input: [1, 2, 3, 4, 5, 6] Output: Even: [2, 4, 6], Odd: [1, 3, 5] 🔹 Approach 1: Using Loop (Basic) 💡 Explanation Traverse list Check number % 2 Store in separate lists 👨‍💻 Java Code import java . util . *; public class EvenOdd { public static void main ( String [] args ) { List < Integer > list = Arrays . asList ( 1 , 2 , 3 , 4 , 5 , 6 ); List < Integer > even = new ArrayList <>(); List < Integer > odd = new ArrayList <>(); for ( int num : list ) { if ( num % 2 == 0 ) { even . add ( num )...

Java Interview Question: Check if a String is a Palindrome

 ðŸ”¹ Introduction String problems are very common in Java interviews. One of the easiest yet frequently asked questions is: 👉 Check whether a given string is a palindrome. Let’s understand how to solve it step by step. 🔹 Problem Statement A string is called a palindrome if it reads the same forward and backward. Example: Input: madam Output: Palindrome Input: hello Output: Not a Palindrome 🔹 Approach 1: Using Two Pointers (Best Method) Start one pointer from the beginning Start another pointer from the end Compare characters If all match → Palindrome 🔹 Java Code (Two Pointer Approach) public class PalindromeCheck { public static void main ( String [] args ) { String str = "madam" ; int left = 0 ; int right = str . length () - 1 ; boolean isPalindrome = true ; while ( left < right ) { if ( str . charAt ( left ) != str . charAt ( right )) { isPalindr...