标签: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