Skip to content

First Unique Character in a String

Introduction

Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.

Examples:

s = "leetcode" return 0.

s = "loveleetcode", return 2. Note: You may assume the string contain only lowercase letters.

Solution

We need to cache count of letters and filter only equal with 1. Get the first one for result.

go
func firstUniqChar(s string) int {
    cache := make([]int, 27)
    for _, ch := range s {
        idx := ch - 'a'
        cache[idx]++
    }
    for i, ch := range s {
        idx := ch - 'a'
        if cache[idx] == 1 {
            return i
        }
    }
    return -1
}

Last updated:

Deep Learning · Algorithms · Engineering