034 · First Unique Character in a String

algorithm
Published

June 10, 2026

Problem

给定一个字符串 s

请返回:s 中第一个不重复字符的下标。

这里的“不重复”指的是:这个字符在整个字符串中只出现了一次。

如果字符串里不存在这样的字符,请返回 -1

例如:

s = "leetcode"

从左往右看:

l e e t c o d e

字符 "l" 只出现了一次,而且它是最靠前的不重复字符,所以答案是它的下标:

0

再比如:

s = "loveleetcode"

虽然 "l" 出现了两次,不符合条件;继续往后看,"v" 只出现了一次,而且是第一个满足条件的字符,所以答案是:

2

这道题只需要返回下标,不需要返回字符本身,也不需要修改原字符串。

Examples

示例 1

Input:  s = "leetcode"
Output: 0

解释:"l" 在字符串中只出现一次,并且它是第一个不重复字符。

示例 2

Input:  s = "loveleetcode"
Output: 2

解释:"l" 出现了两次,"o" 出现了两次,"v" 只出现一次,所以返回 "v" 的下标 2

示例 3

Input:  s = "aabb"
Output: -1

解释:"a""b" 都出现了两次,字符串中没有不重复字符。

Constraints

  • \(1 \leq\) s.length \(\leq 10^5\)
  • s 只由小写英文字母组成