50.第一个只出现一次的字符
小于 1 分钟
50.第一个只出现一次的字符
参考链接
剑指 Offer 50. 第一个只出现一次的字符-跟着帅地玩转校招,刷爆各类算法题帅地玩Offer
LCR 169. 招式拆解 II - 力扣(LeetCode)
优秀题解
class Solution {
public char dismantlingAction(String arr) {
Map<Character, Boolean> hmap = new LinkedHashMap<>();
char[] sc = arr.toCharArray();
for(char c : sc)
hmap.put(c, !hmap.containsKey(c));
for(Map.Entry<Character, Boolean> d : hmap.entrySet()){
if(d.getValue()) return d.getKey();
}
return ' ';
}
}
作者:Krahets
链接:https://leetcode.cn/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/solutions/159489/mian-shi-ti-50-di-yi-ge-zhi-chu-xian-yi-ci-de-zi-3/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
使用 LinkedHashMap 存储 <字符 : 出现次数>(LinkedHashMap 维护插入顺序)
先遍历一遍字符数组,统计每个字符出现的次数(重复出现,value 为 false)
随后,遍历 LinkHashMap 中的 Entry ,检查 Entry 中的 value 是否为 true