题目描述
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)
1、思路分析
用HashMap来存储每个字符及其出现的次数,最后再遍历map,即可找到。
2、代码

import java.util.HashMap;
public class Solution {
    public int FirstNotRepeatingChar(String str) {
        HashMap<Character,Integer> map=new HashMap<Character,Integer>();
        for(int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if(map.containsKey(c)) {
                int time = map.get(c);
                time++;
                map.put(c,time);
            }
            else {
                map.put(c,1);
            }
        }
       for(int i = 0; i < str.length(); i++) {
           char c = str.charAt(i);
           if(map.get(c) == 1)
           return i;
       }
       return -1;
    }
}