問題:
在字串(0<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置, 如果沒有則返回-1(需要區分大小寫)
相關視頻教程推薦:java在線教程
##解決思路:題目要求很明確,就是遍歷字串,並且給字元計數,計數之後,找到計數為1的字元即可。很明顯這需要用到hashmap,key就是字串中的各個字符,而value就是這個字符在字串中出現的次數。 程式碼如下:import java.util.LinkedHashMap; public class Solution { public int FirstNotRepeatingChar(String str) { int len = str.length(); LinkedHashMap<Character, Integer> map = new LinkedHashMap<>(); for (int i = 0; i < len; i++) { char c = str.charAt(i); Integer val = map.get(c); map.merge(c, 1, (oldValue, newValue) -> oldValue + newValue); } Character resultKey = null; for (Character c : map.keySet()){ if (map.get(c) == 1){ resultKey = c; break; } } for (int i = 0 ;i < len; i++){ if (str.charAt(i) == resultKey){ return i; } } return -1; } }
以上是java實作尋找第一個只出現一次的字符的詳細內容。更多資訊請關注PHP中文網其他相關文章!