1. 第一个只出现一次的字符

在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。

  1. 示例:
  2. s = "abaccdeff"
  3. 返回 "b"
  4. s = ""
  5. 返回 " "

思路

  • 创建一个Set用于存放非结果字符
  • 扫描字符串中的每个字符

    • 判断字符是否在Set中存在

      • 存在,则继续跳转到下一次循环,进行下一次扫描
      • 不存在,则依次扫描该字符后面的所有字符,比较是否有与该字符相等的字符

        • 没有,直接返回该字符
        • 有,进行下一次循环 ```java class Solution { public char firstUniqChar(String s) { if(s==””){ return ‘ ‘; } Set set = new HashSet<>(); char[] chs = s.toCharArray();

        for(int i=0;i<chs.length;i++){

        char temp = chs[i];
        if(set.contains(temp)) continue;
        // 重点 
        if(i==chs.length-1){
            return s.charAt(i);
        }
        for(int j=i+1;j<chs.length;j++){
            if(temp!=chs[j]){
                if(j==chs.length-1){
                    return temp;
                }
                continue;
            } 
            set.add(temp);
            break;
        }
        

        } return ‘ ‘; } } ```

  • 上述代码标注位置

    • 用于处理迭字,单字,结果为最后一个字符。