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

第一个只出现一次的字符

http://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c

public class Solution {
    public int FirstNotRepeatingChar(String str) {

        if (str == null || str.length() == 0) {
            return -1;
        }

        char[] chars = str.toCharArray();

        //ASCII 256最大长度,所以定义长度为256数组
        int[] asciisHash = new int[256];

        for (int i = 0; i < chars.length; i++) {
            //hash每个字符,计算count++操作 记录次数
            asciisHash[chars[i]] += 1;
        }

        //遍历刚才定位每个字符出现次数的数组,当遇到第一个次数为1次的字符时,返回其位置
        for (int j = 0; j < chars.length; j++) {
            if (asciisHash[chars[j]] == 1) {
                return j;
            }
        }

        return -1;
    }
}
刷刷题 文章被收录于专栏

刷刷题 活跃活跃脑细胞

全部评论

相关推荐

985柜员:开发还敢还叫,全部让自测就老实了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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