《剑指offer第二版》面试题50:第一个只出现一次的字符(ja
作者:
castlet | 来源:发表于
2020-02-25 21:48 被阅读0次
题目描述
- 在字符串中找到只出现一次的字符。例如输入"abaccdeff",则输出b。
解题思路
- char是长度为8的数据类型,因此共有256种可能。
- 创建一个长度为256的数组,数组的下标对应一个char,值存储这个char出现的次数。
- 遍历输入的字符串,更新数组。
- 再次遍历字符串,如果对应数组里的值为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
网友评论