剑指Offer_34 发表于 2017-12-04 | 分类于 剑指Offer 题目在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置 解题思路使用HashMap记录字符的出现次数 123456789101112131415161718192021222324252627import java.util.HashMap;public class Solution { public int FirstNotRepeatingChar(String str) { if(str == null || str.length() == 0){ return -1; } HashMap<Character, Integer> map = new HashMap<>(); for(int i = 0; i < str.length(); ++i){ char c = str.charAt(i); if(map.containsKey(c)){ map.put(c, 1+map.get(c)); } else{ map.put(c, 1); } } for(int i = 0; i < str.length(); ++i){ if(map.get(str.charAt(i)) == 1){ return i; } } return -1; }}