Description

Given a string s, find the first non-repeating character in it and return its index. If it does not exist, return -1.

Example 1:

Input: s = “leetcode” Output: 0

Example 2:

Input: s = “loveleetcode” Output: 2

Example 3:

Input: s = “aabb” Output: -1

Constraints:

  • 1 <= s.length <= 105
  • s consists of only lowercase English letters.

Code

class Solution {
public:
    int firstUniqChar(string s) {
        unordered_map<char, int> mp;
        
        for(auto ch: s) {
            mp[ch]++;
        }
 
        for(int i = 0; i < s.length(); i++) {
            if(mp[s[i]] == 1) return i;
        }
 
        return -1;
    }
};

Source