剑指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

相关推荐

ohs的小木屋:比不少实习待遇高了
点赞 评论 收藏
分享
05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 11:47
点赞 评论 收藏
分享
评论
51
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务