Skip to content
Leetcode
Esc
↑↓navigate↵open⌘Jpreview
On this page

387. First Unique Character in a String

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

Hash Table

Example 1:

  • Input: s = "leetcode"
  • Output: 0
  • Explanation: The character 'l' at index 0 is the first character that does not occur at any other index.

Example 2:

  • Input: s = "loveleetcode"
  • Output: 2

Example 3:

  • Input: s = "aabb"
  • Output: -1

Constraints:

  • 1 <= s.length <= 10^5
  • s consists of only lowercase English letters.

Approach

Solution

/**
 * @param {string} s
 * @return {number}
 */
var firstUniqChar = function (s) {
  const freq = {};
  for (let c of s) freq[c] = (freq[c] || 0) + 1;

  for (let i = 0; i < s.length; i++) {
    if (freq[s[i]] === 1) {
      return i;
    }
  }
  return -1;
};

Explanation

Last updated on September 24, 2026

Was this page helpful?