剑指Offer——第一个只出现一次的字符

By AverageJoeWang
 标签:

第一个只出现一次的字符

  • 题目描述
    在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置

  • 解题思路

创建一个27大小的数组,统计出现的个数,第二遍遍历str的时候利用hash表的思想来找出出现一次的字符

  • 代码实现
public class Solution {
    public int FirstNotRepeatingChar(String str) {
        int [] a  = new int['z' + 1];
        for (int i = 0; i < str.length(); i++){
            a[str.charAt(i)]++;
        }
        for (int i = 0; i < str.length(); i++){
            if (a[str.charAt(i)] == 1)
                return i;
        }
        return -1;
    }
}