《劍指offer》系列 第一個只出現一次的字元(Java)
阿新 • • 發佈:2018-11-25
連結
牛客:第一個只出現一次的字元
題目描述
在一個字串(0<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫).
思路
雜湊表遍歷計數
程式碼
import java.util.HashMap; import java.util.Map; public class Solution { public int FirstNotRepeatingChar(String str) { Map<Character,Integer> map = new HashMap<Character,Integer>(); char[] arr = str.toCharArray(); for(int i=0; i<arr.length; i++){ if(map.containsKey(arr[i])){ int value = map.get(arr[i]); map.put(arr[i], ++value); }else{ map.put(arr[i], 1); } } int pos = -1; int i=0; for(;i<arr.length;i++){ char c = arr[i]; if (map.get(c) == 1) { return i; } } return pos; } }