题目描述:具体描述见原题。简单来说就是寻找给定字符串中第一个不重复的字符。
解题思路:简单题,采用映射的思想,将每个字符数量按照字典序映射到长度为26的切片里。最后遍历找到字符串,找到第一个映射值为1的字符即可。具体过程见代码。
具体代码:
func firstUniqChar(s string) int {
dic := make([]int, 26)
for _, c := range s{
dic[c-'a']++ // 将每个字符数量映射到切片对应位置
}
for i, d := range s{ // 遍历给定字符串
if dic[d-'a'] == 1 { // 如果该字符对应切片中值为1,返回
return i
}
}
return -1 // 遍历一圈没找到,返回-1
}
补充说明:这种映射思想在hash相关中经常使用。雷子已经放假了,开始讨论去成都看好看小姑娘的计划了。