Be the first user to complete this post

  • 0
Add to List
Beginner

214. Find the last non repeating character in a given string.

Objective: Given a string, write an algorithm to find the last non-repeating character in it.

Example:

String input = "algorithms tutorials"
Output: 'u'

String input = "aabbccdd"
Output: No repeating character found.

Approach:

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 the rest of the string using the inner loop and return the first character which is nonrepeating (from right to left).  Time complexity is O(N^2).

Better approach: Using extra space

  • Iterate the string from right to left.
  • Count the occurrence of each character and store it on a map.
  • Iterate the string again from right to left and check if the character has count = 1 in the map created in the previous step, if yes then return that character.
  • If none of the characters has count = 1 in the map, return null.

Output:

Last Non Repeating Character in 'algorithms tutorials' is: u