码迷,mamicode.com
首页 > 其他好文 > 详细

一个只出现一次的字符

时间:2020-05-08 23:05:22      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:try   没有   bool   character   字符   复杂   array   ==   字符串   

题目:

在字符串 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 }

 

一个只出现一次的字符

标签:try   没有   bool   character   字符   复杂   array   ==   字符串   

原文地址:https://www.cnblogs.com/heaveneleven/p/12853418.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!