劍指Offer3:第一個只出現一次的字元
阿新 • • 發佈:2018-12-18
題目描述
在一個字串(0<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫).
解題思路
使用HashMap集合鍵值對的形式儲存字串中的字母和其在字元中出現的次數。
解答
package digui; import java.util.HashMap; public class Demo3_Solution { public static void main(String[] args) { Demo3_Solution ds = new Demo3_Solution(); String str = "abcabcdd"; int index = ds.FirstNotRepeatingChar(str); System.out.println(index); } public int FirstNotRepeatingChar(String str) { HashMap<Character,Integer> hm = new HashMap<>(); char[] c = str.toCharArray(); int index = -1; for (int i = 0; i < c.length; i++) { if (!hm.containsKey(c[i])) { hm.put(c[i], 1); } else { hm.put(c[i], hm.get(c[i])+1); } } for (int i = 0; i < c.length; i++) { if (hm.get(c[i]) == 1) { index = i; break; } } return index; } }