博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《剑指 Offer》——54、字符流中第一个不重复的字符
阅读量:2343 次
发布时间:2019-05-10

本文共 929 字,大约阅读时间需要 3 分钟。

1. 本题知识点

哈希表

2. 题目描述

请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符 “go” 时,第一个只出现一次的字符是 “g”。当从该字符流中读出前六个字符 “google" 时,第一个只出现一次的字符是 “l”。

如果当前字符流没有存在出现一次的字符,返回 # 字符。

3. 解题思路

  1. 用 HashMap 建立每个字符与其出现次数的映射
  2. 依次遍历字符串,找到第一个出现次数为 1 的字符,返回该字符
  3. 如果当前字符流没有存在出现一次的字符,返回 # 字符

4. 代码

public class Solution {
String str = ""; public void Insert(char ch) {
str += ch; } public char FirstAppearingOnce() {
// 用 HashMap 建立每个字符与其出现次数的映射 HashMap
hashMap = new HashMap<>(); for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i); hashMap.put(c, hashMap.getOrDefault(c, 0) + 1); } // 依次遍历字符串,找到第一个出现次数为 1 的字符,返回该字符 for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i); if (hashMap.get(c) == 1) {
return c; } } // 如果当前字符流没有存在出现一次的字符,返回 # 字符 return '#'; }}

转载地址:http://qbjvb.baihongyu.com/

你可能感兴趣的文章
详解Asp.net MVC DropDownLists
查看>>
Asp.net MVC防止图片盗链的实现方法,通过自定义RouteHandler来操作
查看>>
VS2010的智能提示没有了的可能原因
查看>>
Creating a Cascading Dropdown in ASP.net MVC 3 and jQuery (1)
查看>>
创建联动的 DropdownList in ASP.net MVC 3 and jQuery (2)
查看>>
HTTP触发Jenkins参数化构建(CORS Plugin)
查看>>
来自 Serenity 的 Java 8 的一些使用技巧
查看>>
ubuntu12.04--子进程 已安装 post-installation 脚本 返回了错误号 1
查看>>
系统--电脑开机一声长响
查看>>
系统--A disk read error occurred Press Ctrl+Alt+d...
查看>>
Some projects cannot be imported because they a...
查看>>
ubuntu-android--make: *** [out/host/linux-x86/o...
查看>>
原子变量与synchronized详细解释
查看>>
java.lang.OutOfMemoryError: PermGen space及其解决方法
查看>>
如何让ajaxfileupload.js支持IE9,IE10,并可以传递多个参数?
查看>>
highcharts扩展tooltip提示异步信息
查看>>
activiti--History 历史配置
查看>>
activiti--部署bpmn/bar文件详解
查看>>
win7使用Putty 连接debain
查看>>
debain 常用命令
查看>>