Leetcode——第一个只出现一次的字符
Posted Yawn,
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode——第一个只出现一次的字符相关的知识,希望对你有一定的参考价值。
1.题目
2. 题解
(1)HashMap存出现次数是否大于1
class Solution {
public char firstUniqChar(String s) {
if(s == null)
return ' ';
//存放字符,字符是否已存在
HashMap<Character, Boolean> map = new HashMap<>();
for(int i = 0; i < s.length();i++){
map.put(s.charAt(i), !map.containsKey(s.charAt(i)));
}
//找第一个只出现一次的字符
for(int i = 0; i < s.length();i++){
if(map.get(s.charAt(i)))
return s.charAt(i);
}
return ' ';
}
}
(2)HashMap存频数
class Solution {
public char firstUniqChar(String s) {
Map<Character, Integer> frequency = new HashMap<Character, Integer>();
for (int i = 0; i < s.length(); ++i) {
char ch = s.charAt(i);
frequency.put(ch, frequency.getOrDefault(ch, 0) + 1);
}
for (int i = 0; i < s.length(); ++i) {
if (frequency.get(s.charAt(i)) == 1) {
return s.charAt(i);
}
}
return ' ';
}
}
以上是关于Leetcode——第一个只出现一次的字符的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode]剑指 Offer 50. 第一个只出现一次的字符