剑指offer-34-第一个只出现一次的字符

第一个只出现一次的字符_牛客网

https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c?tpId=13&tqId=11187&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

〉在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).

刚开始还以为有什么特殊的解法,没想到当年也是按照hash的思想来做的,先统计出现的次数,然后在返回相应的index

public class Solution {
    public int FirstNotRepeatingChar(String str) {
        if(str==null || str.length()

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

小白刷剑指offer 文章被收录于专栏

跟着小白一起刷剑指offer,通过讨论加深印象吧~ 没有人不学习就能够掌握知识,知识就是需要学习的~

全部评论
按照ASCII的值进行保存,当存字符'a'的时候是这种形式的:count['a']++,等价于count[97]++。
9 回复 分享
发布于 2019-12-06 19:49
数组大小可以设置为58, ascii值直接对58取模, 也算是一种优化把(之所以是58, 不是26*2=52, ascii中中间还有介个字符, 英文字母不是连续的)
6 回复 分享
发布于 2020-01-31 13:04
第二步很妙!
1 回复 分享
发布于 2020-03-23 17:19
count[str.charAt(i)]++; 是什么意思 如果字符串是abc 可以count[a]++ 这样子吗
1 回复 分享
发布于 2019-12-01 16:09
不一定是第一个出现的
点赞 回复 分享
发布于 2021-10-14 17:10
默认字符就是256种可能的ASCII字符吗,什么情况要用到UNICODE字符
点赞 回复 分享
发布于 2020-05-07 09:56
受教了!
点赞 回复 分享
发布于 2020-03-10 21:07
我呆呆的存在了hashmap中
点赞 回复 分享
发布于 2020-01-31 12:32
其实,你开辟的辅助空间只需要申请122就行了,你这样会会浪费一部分内存
点赞 回复 分享
发布于 2019-12-18 14:24

相关推荐

刘湘_passion:太强了牛肉哥有被激励到
点赞 评论 收藏
分享
AAA专业长城贴瓷砖刘大爷:这样的简历我会直接丢进垃圾桶,花里胡哨的
点赞 评论 收藏
分享
评论
51
1
分享

创作者周榜

更多
牛客网
牛客企业服务