题解 | #第一个只出现一次的字符#
第一个只出现一次的字符
https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c
public class Solution {
public static int FirstNotRepeatingChar(String str){ int len = str.length(); HashMap<Character,Integer> map = new HashMap<>(); //统计字符串中所有字符出现的次数,K为索引,V为出现次数 for (int i = 0; i < len; i++) { if(!Character.isUpperCase(str.charAt(i))){ map.put(str.charAt(i),map.getOrDefault(str.charAt(i),0) + 1); }else{ map.put(str.charAt(i),map.getOrDefault(str.charAt(i),0) + 1); } } //找到第一个出现一次的字符 for (int i = 0; i< len; i ++){ if (map.get(str.charAt(i))==1){ return i; } } return -1; } public static void main(String[] args) { int N = FirstNotRepeatingChar("Aa"); System.out.println(N); }
}
根据题解的思路,我自己丰富了一些Case,比如题目要求区分大小写,也就是说如果输入项目为"Aa",那么他们也是不同的字符,所以出现第一个出现次数为1的字符为A,索引下标就是0