一、题目内容

image.png

二、题解

解法1:

思路

字典,linkedhashmap有序存储

代码

  1. class Solution {
  2. public char firstUniqChar(String s) {
  3. Map<Character,Boolean> dic = new LinkedHashMap<Character,Boolean>();
  4. char[] charArr = s.toCharArray();
  5. for(char c:charArr){
  6. dic.put(c,!dic.containsKey(c));
  7. }
  8. for(Map.Entry<Character, Boolean> d : dic.entrySet()){
  9. if(d.getValue()){
  10. return d.getKey();
  11. }
  12. }
  13. return ' ';
  14. }
  15. }

解法2:

思路

字典,hashmap存储,遍历字符串找第一个

代码

  1. class Solution {
  2. public char firstUniqChar(String s) {
  3. Map<Character,Integer> dic = new HashMap<Character,Integer>();
  4. char[] charArr = s.toCharArray();
  5. for(char c:charArr){
  6. if(dic.containsKey(c)){
  7. dic.put(c,dic.get(c)+1);
  8. }else{
  9. dic.put(c,1);
  10. }
  11. }
  12. for(char c:charArr){
  13. if(dic.get(c)==1){
  14. return c;
  15. }
  16. }
  17. return ' ';
  18. }
  19. }