一个只出现一次的字符
Posted heaven夏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个只出现一次的字符相关的知识,希望对你有一定的参考价值。
题目:
在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。
示例:
s = "abaccdeff"
返回 "b"
s = ""
返回 " "
限制:
0 <= s 的长度 <= 50000
解答:
暴力方式,对每个字符,比较后面是否存在相同的,复杂度O(N^2);采用哈希表方式,使用LinkedHashMap可以在返回的时候降低遍历成本;
1 class Solution { 2 public char firstUniqChar(String s) { 3 if(s.length() == 0 || s == null){ 4 return ‘ ‘; 5 } 6 Map<Character, Boolean> map = new LinkedHashMap<>(); 7 for(Character ch : s.toCharArray()){ 8 if(map.containsKey(ch)){ 9 map.put(ch, false); 10 }else{ 11 map.put(ch, true); 12 } 13 } 14 for(Map.Entry<Character, Boolean> entry : map.entrySet()){ 15 if(entry.getValue()){ 16 return entry.getKey(); 17 } 18 } 19 return ‘ ‘; 20 } 21 }
以上是关于一个只出现一次的字符的主要内容,如果未能解决你的问题,请参考以下文章