Go语言实现:【剑指offer】第一个只出现一次的字符位置

该题目来源于牛客网《剑指offer》专题。

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)

Go语言实现:

func firstUniqChar(s string) int {
    //假设都是大小写字母,定义一个数组
    list := [52]int{}
    
    //算出每个字符出现的次数
    for _, x := range s {
        list[x-'a']++
    }
    
    //算出首次出现且次数为1的字符
    for index, x := range s {
        if list[x-'a'] == 1 {
            return index
        }
    }
    
    return -1
}
posted @ 2019-12-08 21:15  南方有嘉木1993  阅读(119)  评论(0编辑  收藏  举报