Objective: Given a string, write an algorithm to find the last repeating character in it.
String input = "horizon tutorials" Output: 'i' String input = "algorithms" Output: No repeating character found.
Naive approach: This problem can be easily solved using two nested loops from right to left. Take each character from the outer loop and check the character in rest of the string using inner loop and return the first character which is repeating. Time complexity is O(N^2).
Better approach: Using extra space
- Iterate the string from left to right.
- Count the occurrence of each character and store it in a map.
- Iterate the string again from right to left and check if the character has count more than one in the map created in the previous step, if yes then return that character.
- If none of the character has count > 1 in map, return null.
Output: Last Repeating Character in 'tutorial horizon' is: o