题目描述
在一个字符串(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; } }