LeetCode24|第一个只出现一次的字符

时间:2022-07-23
本文章向大家介绍LeetCode24|第一个只出现一次的字符,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1,问题简述

在字符串 s 中找出第一个只出现一次的字符。

如果没有,返回一个单空格。

s 只包含小写字母。

2,示例

s = "abaccdeff"
返回 "b"

s = "" 
返回 " "

3,题解思路

键值对集合HashMap的使用

4,题解程序

 
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;

public class FirstUniqCharTest {
    public static void main(String[] args) {
        String str = "abaccdeff";
        char c = firstUniqChar(str);
        System.out.println("c = " + c);
    }

    public static char firstUniqChar(String s) {
        if (s == null || s.length() == 0) {
            return ' ';
        }
        HashMap<Character, Integer> hashMap = new LinkedHashMap<>(s.length());
        char[] chars = s.toCharArray();
        for (Character c : chars
        ) {
            if (hashMap.containsKey(c)) {
                hashMap.put(c, hashMap.get(c) + 1);
            } else {
                hashMap.put(c, 1);
            }
        }
        return hashMap.entrySet().stream().filter(x -> x.getValue() == 1).findFirst().map(Map.Entry::getKey).orElse(' ');
    }
}

5,总结

这道题采用了键值对集合去做,还是比较容易理解的,主要使用了java8的用法,现在后端开发的编译环境和开发环境都是采用了jdk8,学习如何使用java8的语法也是很有必要的一件事情,之前自己再前面的文章都讲过java8常用的用法,记得自己不会java8语法时,交流真的费劲,别人说个函数转换,听的一头雾水,他说用这个做个功能,但是其实你用java7也可以做,但是你听他说就是这个很方便,但是你听不懂那就很尴尬了,学习java8也是很方便的,记得很早之前别人用git的时候,自己也是刚接触,所以自然别人会教你一下,但是概念你都不知道,别人教起来,自己理解起来都是很麻烦的,后面随着自己慢慢摸索,git的使用也是很熟练了。