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的使用也是很熟练了。
- 【一起学Python】STEAM游戏评测爬虫
- Open Judge 2750 鸡兔同笼
- POJ 1017 Packets
- Hadoop离线数据分析平台实战——380MapReduce程序优化Hadoop离线数据分析平台实战——380MapReduce程序优化
- 配置远程访问Jupyter+腾讯云超划算活动上车
- HDU 4256 The Famous Clock
- ZOJ 1403&&HDU 1015 Safecracker【暴力】
- Torch7搭建卷积神经网络详细教程
- 爬虫入门到精通-HTTP协议的讲解
- 批量替换文件名和文本文件内容mac
- 抓取手机app的数据(摩拜单车)
- Hadoop离线数据分析平台实战——520项目总结Hadoop离线数据分析平台实战——520项目总结
- 爬虫入门到精通-mongodb的基本使用
- 拒绝撕逼,用数据来告诉你选择器到底哪家强
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- C++核心准则T.20:避免定义没有明确语义的“概念”
- 机器学习之独热编码(One-Hot)详解(代码解释)
- TypeScript 实战算法系列(四):实现集合和各种集合运算
- 不知道怎么封装代码?看看这几种设计模式吧!
- 百分浏览器快捷键
- 深度神经网络权值初始化的几种方式及为什么不能初始化为零(1)
- Python_doc.1
- (24)Bash预定义变量
- 数组:每次遇到二分法,都是一看就会,一写就废
- OSPF 路由协议配置
- 项目实战 | 细节决定成败的渗透测试
- 构建Rasa低成本的Docker开发部署环境
- JsonPath实践(五)
- 项目实战 | 细节决定成败的渗透测试
- 工具的使用 | CobaltStrike证书修改躲避流量审查