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

2020-02-25  本文已影响0人  castlet

题目描述

解题思路

  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';
}
上一篇 下一篇

猜你喜欢

热点阅读