美文网首页
《剑指offer第二版》面试题50:第一个只出现一次的字符(ja

《剑指offer第二版》面试题50:第一个只出现一次的字符(ja

作者: castlet | 来源:发表于2020-02-25 21:48 被阅读0次

题目描述

  • 在字符串中找到只出现一次的字符。例如输入"abaccdeff",则输出b。

解题思路

  1. char是长度为8的数据类型,因此共有256种可能。
  2. 创建一个长度为256的数组,数组的下标对应一个char,值存储这个char出现的次数。
  3. 遍历输入的字符串,更新数组。
  4. 再次遍历字符串,如果对应数组里的值为1,则该字符就是第一个只出现一次的字符。

代码

char findFirstReapting(String str){
    if (str == null || str.length() <= 0) {
        return '\0';
    }
    int[] charNumbers = new int[256];
    for (int i = 0; i < str.length(); i++) {
        charNumbers[str.charAt(i)]++;
    }
    for (int i = 0; i < str.length(); i++) {
        if (charNumbers[str.charAt(i)] == 1) {
            return str.charAt(i);
        }
    }
    return '\0';
}

相关文章

网友评论

      本文标题:《剑指offer第二版》面试题50:第一个只出现一次的字符(ja

      本文链接:https://www.haomeiwen.com/subject/govqchtx.html