j

jaryue

V1

2023/03/31阅读:17主题:默认主题

leetcode387首个首次出现的字符

leetcode


题目描述

解题思路

法1

哈希表\

  1. 建立索引
a := make([]int26)//建立哈希表,我们就用26为数组进行索引
  1. 储存字母出现的次数,a的asII为97,用a代替0号位,减去97储存出现 的次数
for _, v := range s {
  a[v-97]++//a的asII为97,用a代替0号位,减去97储存出现 的次数
 }
  1. 寻找单个出现的 字母
for i, v := range s {
  if a[v-97] == 1 {//索引首个单次出现的字母
   return i
  }
 }

执行结果

法1

//哈希表
func firstUniqChar(s string) int {
 a := make([]int26)//建立哈希表,我们就用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 炫耀一下:

分类:

后端

标签:

Golang

作者介绍

j
jaryue
V1