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


京公网安备 11010502036488号