非独立思考

    1. class Solution {
    2. public int firstUniqChar(String s) {
    3. // 最关键的一点,在第二次循环时,检测的key应该是s串的从头到尾,检测这个串的值是不是1
    4. // 相当于,第一次循环,我们检查出了每个字符的个数
    5. // 第二次,依然从头开始循环,因为已经知道个数,只要检测到一个为1就返回
    6. char[] chars = s.toCharArray();
    7. HashMap<Character, Integer> map = new HashMap<>();
    8. for (int i = 0; i < chars.length; i++) {
    9. map.put(chars[i], map.getOrDefault(chars[i], 0) + 1);
    10. }
    11. for (int i = 0; i < chars.length; i++) {
    12. if (map.get(chars[i]) == 1) {
    13. return i;
    14. }
    15. }
    16. return -1;
    17. }
    18. }