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

题目描述

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).
 
 
思路:建立一个数组 数组的下标是跟字符的ascii码直接相关的 
public class Solution {
    public int FirstNotRepeatingChar(String str) {
        if(str == null){
            return 0;
        }
        int[] count = new int[58];
        for(int i =0;i < str.length();i ++){
            count[(int)str.charAt(i)-65] += 1;
        }
        for(int i =0;i <str.length(); i ++){
            if(count[(int)str.charAt(i)-65] == 1){
                return i;
            }
        }
        return -1;
    }
}

 

posted @ 2020-03-08 01:30  nlw  阅读(90)  评论(0编辑  收藏  举报