j
jaryue
V1
2023/03/31阅读:17主题:默认主题
leetcode387首个首次出现的字符
leetcode
题目描述
解题思路
法1
哈希表\
-
建立索引
a := make([]int, 26)//建立哈希表,我们就用26为数组进行索引
-
储存字母出现的次数,a的asII为97,用a代替0号位,减去97储存出现 的次数
for _, v := range s {
a[v-97]++//a的asII为97,用a代替0号位,减去97储存出现 的次数
}
-
寻找单个出现的 字母
for i, v := range s {
if a[v-97] == 1 {//索引首个单次出现的字母
return i
}
}
执行结果
法1
//哈希表
func firstUniqChar(s string) int {
a := make([]int, 26)//建立哈希表,我们就用26为数组进行索引
for _, v := range s {
a[v-97]++//a的asII为97,用a代替0号位,减去97储存出现 的次数
}
for i, v := range s {
if a[v-97] == 1 {//索引首个单次出现的字母
return i
}
}
return -1//没有返回-1
}
执行结果: 通过 显示详情 查看示例代码 添加备注
执行用时: 4 ms , 在所有 Go 提交中击败了 97.02% 的用户 内存消耗: 5.1 MB , 在所有 Go 提交中击败了 76.60% 的用户 通过测试用例: 105 / 105 炫耀一下:
作者介绍
j
jaryue
V1