最强解析面试题:第一个只出现一次的字符
Posted 魏小言
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最强解析面试题:第一个只出现一次的字符相关的知识,希望对你有一定的参考价值。
最强解析面试题:第一个只出现一次的字符「建议收藏!」
文章讲解 “ 第一个只出现一次的字符 ” 经典面试题,包含思路及源码,及解惑!
题目
在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)
数据范围:0 \\le n \\le 100000≤n≤10000,且字符串只有字母组成。
要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)
示例1
输入:
“google”
返回值:
4
思路
1、使用map数据结构存储每个字符的出现次数
2、遍历字符串,找出出现次数为1的下标
代码
package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param str string字符串
* @return int整型
*/
func FirstNotRepeatingChar(str string) int {
// write code here
m := make(map[byte]int)
b := []byte(str)
for i, _ := range b {
m[b[i]]++
}
for i, _ := range b {
if m[b[i]] == 1 {
return i
}
}
return -1
}
附录
忙碌和早起
以上是关于最强解析面试题:第一个只出现一次的字符的主要内容,如果未能解决你的问题,请参考以下文章