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的使用也是很熟练了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值