题目链接: 剑指 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
}