题解 | 第一个只出现一次的字符

第一个只出现一次的字符

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

敲黑板的知识点:

  1. ASCII中大写字母在小写字母前面
  2. ASCII中大写字母的范围是65-90
  3. ASCII中小写字母的范围是97-122
  4. ASCII中大写字母和小写字母之间有6个字符

因此熟悉了上面的规律之后,可以使用一个长度为26+26+6 = 58的数组作为哈希表,但是如果记不住呢,那就像下面这样写:

public class Solution {
    public int FirstNotRepeatingChar(String str) {
        int[] a = new int[26];
        int[] b = new int[26];
        for (char c : str.toCharArray()) {
            if (Character.isUpperCase(c)) {
                a[c-'A']++;
            } else {
                b[c-'a']++;
            }
        }
        int i = 0;
        for (char c : str.toCharArray()) {
            if (Character.isUpperCase(c)) {
                if (a[c-'A'] == 1) return i;
            } else {
                if (b[c-'a'] == 1) return i;
            }
            i++;
        }
        return -1;
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
05-16 11:16
已编辑
东华理工大学 Java
牛客73769814...:盲猜几十人小公司,庙小妖风大,咋不叫她去4️⃣呢😁
牛客创作赏金赛
点赞 评论 收藏
分享
Lorn的意义:你这种岗位在中国现在要么牛马天天加班,要么关系户进去好吃好喝,8年时间,真的天翻地覆了,对于资本来说你就说一头体力更好的牛马,哎,退伍没有包分配你真的亏了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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