牛客(34)第一个只出现一次的字符
// 题目描述 // 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置 public static int FirstNotRepeatingChar(String str) { // char[] chars = str.toCharArray(); // int count = 0; // for (int i=0; i<chars.length;i++){ // count = 0; // for (int j=0;j<chars.length;j++){ // if (chars[i]==chars[j]){ // count++; // } // } // if (count == 1){ // return i; // } // } // return -1; Map<Character,Integer> map = new HashMap<Character, Integer>(); char[] chars = str.toCharArray(); for (int i=0; i<chars.length;i++){ if (map.containsKey(chars[i])){ Integer integer = map.get(chars[i]); integer++; map.put(chars[i],integer); }else { map.put(chars[i],1); } } for (int i=0; i<chars.length;i++){ Integer integer = map.get(chars[i]); if (integer == 1){ return i; } } return -1; }