Problem# Given a string (or array), find the first character (or element) that repeats (i.e., appears more than once). Return the first such character in order of appearance. If no character repeats, return a suitable message.
Examples# Example 1# 1
2
3
Input: "learnwithk5kc"
Output: 'k'
Explanation: The character `k` appears more than once ( first at index 9 , 0 - based) in `learnwithk5kc` , so ' k` is the first repeating character.
Example 2# 1
2
3
Input: "algorithms"
Output: No repeating character found.
Explanation: All characters are unique.
Similar Problems Solution# Method 1 – Brute Force# Intuition# Check each character and see if it appears again later in the string.
Approach# For each character, scan the rest of the string to see if it repeats. Return the first character that repeats. Complexity# ⏰ Time complexity: O(n²) — Each character may be compared with all others. 🧺 Space complexity: O(1) — No extra space used. Method 2 – Hash Map# Intuition# Count occurrences of each character, then find the first character with count > 1.
Approach# Traverse the string and count occurrences of each character using a hash map or array. Traverse the string again, and for each character with count > 1, return it. If none found, return null or a suitable message. Code#
Java
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Solution {
public Character getFirstRepeating (String input) {
Map< Character, Integer> map = new HashMap<> ();
for (int i = 0; i < input.length (); i++ ) {
char c = input.charAt (i);
map.put (c, map.getOrDefault (c, 0) + 1);
}
for (int i = 0; i < input.length (); i++ ) {
if (map.get (input.charAt (i)) > 1) {
return input.charAt (i);
}
}
return null ;
}
}
1
2
3
4
5
6
7
8
9
class Solution :
def get_first_repeating (self, s: str) -> str:
count = {}
for ch in s:
count[ch] = count. get(ch, 0 ) + 1
for ch in s:
if count[ch] > 1 :
return ch
return ''
Complexity# ⏰ Time complexity: O(n) — Each character is processed twice. 🧺 Space complexity: O(n) — Space for the hash map.