题目描述:在字符串中找出第一个只出现一次的字符。比如输入abaccdeff,则输出b。
题目分析:用哈希表来实现,key,value对,key是字符,value是出现的次数,循环第一遍,统计每个字符出现的次数,循环第二遍,找出第一个只出现一次的字符。
public static char findOneCharacter(char[] array) {
char result = ' ';
if (array == null || array.length < 0) {
throw new RuntimeException("wrong");
}
Map<Character, Integer> map = new HashMap<>();
for (int i = 0; i < array.length; i++) {
if (map.containsKey(array[i])) {
int value = map.get(array[i]);
value++;
map.put(array[i], value);
} else {
map.put(array[i], 1);
}
}
for (int i = 0; i < array.length; i++) {
if (map.containsKey(array[i]) && map.get(array[i]) == 1) {
result = array[i];
}
}
return result;
}