剑指 Offer 50. 第一个只出现一次的字符

发布时间 2023-09-08 10:34:00作者: 小星code

题目链接: 剑指 Offer 50. 第一个只出现一次的字符

题目描述:

在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。

解法思路:

  • 使用一个map,遍历一遍字符串s,计算出每个字符出现的次数
  • 再遍历一遍字符串s,找到第一个出现次数为1的字符

代码:

func firstUniqChar(s string) byte {
    var res byte
    res = ' '  //边界情况 
    if len(s) == 0{
        return res
    }
    m := make(map[byte]int,len(s))
    for i,_ := range s{
        m[s[i]]++
    }
    for i,_ := range s{
        if m[s[i]] == 1{
            res = s[i]
            break
        }
    }
    return res
}