剑指 Offer 50. 第一个只出现一次的字符 + 哈希表 + 有序哈希表
剑指 Offer 50. 第一个只出现一次的字符
Offer_50
题目详情

方法一:使用无序哈希表

package com.walegarrett.offer;
/**
* @Author WaleGarrett
* @Date 2021/2/8 22:13
*/
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 题目详情:在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
*/
/**
* 方法一:使用无序哈希表
*/
public class Offer_50 {
public char firstUniqChar(String s) {
int len = s.length();
HashMap<Character, Integer> map = new HashMap<>();
for(int i=0;i<len;i++){
char ch = s.charAt(i);
if(map.containsKey(ch))
map.put(ch, map.get(ch) + 1);
else map.put(ch, 1);
}
for(int i=0;i<len;i++){
char ch = s.charAt(i);
if(map.getOrDefault(ch, -1) == 1){
return ch;
}
}
return ' ';
}
}
方法二:使用有序哈希表(LinkedHashMap)

/**
* 方法二:使用有序哈希表(按照插入顺序排序)
*/
class Offer_50_2 {
public char firstUniqChar(String s) {
int len = s.length();
Map<Character, Integer> map = new LinkedHashMap<>();
for(int i=0;i<len;i++){
char ch = s.charAt(i);
if(map.containsKey(ch))
map.put(ch, map.get(ch) + 1);
else map.put(ch, 1);
}
for(Map.Entry<Character, Integer> entry : map.entrySet()){
if(entry.getValue() == 1)
return entry.getKey();
}
return ' ';
}
}
剑指 Offer 50. 第一个只出现一次的字符 + 哈希表 + 有序哈希表的更多相关文章
- 每日一题 - 剑指 Offer 50. 第一个只出现一次的字符
题目信息 时间: 2019-07-03 题目链接:Leetcode tag:哈希表 难易程度:简单 题目描述: 在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. s 只包含小写字 ...
- 【力扣】剑指 Offer 50. 第一个只出现一次的字符
在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. s 只包含小写字母. 示例: s = "abaccdeff"返回 "b" s = &qu ...
- 剑指 Offer 50. 第一个只出现一次的字符
本题 题目链接 题目描述 我的题解 (方法三应用更广泛:方法一虽有限制,但很好用,此题中该方法效率也最高) 方法一:(适用于范围确定的) 思路分析 该字符串只包含小写字母,即字符种类最多26个 开一个 ...
- [剑指offer] 50. 第一个只出现一次的字符 + map,hashmap 及其区别
class Solution { public: int FirstNotRepeatingChar(string str) { map<char,int>mp; ;i<str.si ...
- 【剑指Offer】第一个只出现一次的字符 解题报告(Python)
[剑指Offer]第一个只出现一次的字符 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-intervie ...
- Go语言实现:【剑指offer】第一个只出现一次的字符位置
该题目来源于牛客网<剑指offer>专题. 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1( ...
- 《剑指offer》第一个只出现一次的字符
本题来自<剑指offer> 反转链表 题目: 思路: C++ Code: Python Code: 总结:
- 剑指Offer:第一个只出现一次的字符
题目:在字符串中找出第一个只出现一次的字符.如输入"abaccdeff",这输出'b' // 第一个只出现一次的字符 #include <stdio.h> char f ...
- 剑指OFFER之第一个只出现一次的字符(九度OJ1283)
题目描述: 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符. 输入: 输入有多组数据每一组输入一个字符串. 输出: 输出第一个只出现一次的字 ...
随机推荐
- C++中流操作符<<重载的实现
一.继承fstream后重载其<< 注意:重载函数中不能直接使用参数中的流out,否则会出现递归出错. class CLogStream : public ofstream { publi ...
- BeautifulSoup select方法
1 html = """ 2 <html><head><title>The Dormouse's story</title> ...
- VScode 相关
1.F5运行py文件,打开terminal终端的时候总是弹出Powershell窗口,只能在powershell窗口中用命令行运行程序,实在很不方便. 解法:右键Powershell属性,取消使用旧版 ...
- 在kubernetes集群里集成Apollo配置中心(1)之交付Apollo-configservice至Kubernetes集群
1.Apollo简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微 ...
- kubernetes实战-交付dubbo服务到k8s集群(三)安装配置maven和java运行时环境的底包镜像
maven 官方地址: 官方地址 下载maven,shdd7-200 # cd /opt/src # wget https://archive.apache.org/dist/maven/maven- ...
- 二进制安装kubernetes(一) 环境准备及etcd组件安装及etcd管理软件etcdkeeper安装
实验环境: 架构图: 主机环境: 操作系统:因docker对内核需要,本次部署操作系统全部采用centos7.6(需要内核3.8以上) VM :2C 2G 50G * 5 PS:因后面实验需要向k8 ...
- ASP.Net MVP Framework had been dead !
ASP.Net MVP Framework Project Description A project to get you started with creating and designing w ...
- CSS overflow-anchor
CSS overflow-anchor https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-anchor https://develop ...
- TypeScript 3.7 RC & Nullish Coalescing
TypeScript 3.7 RC & Nullish Coalescing null, undefined default value https://devblogs.microsoft. ...
- NGK福利再升级,1万枚VAST限时免费送
NGK在推出持有算力获得SPC空投活动后,福利再升级,于美国加州时间2021年2月8日下午4点推出新人福利活动,注册NGK成为新会员,即可获得0.2枚VAST奖励. VAST免费福利送活动仅送出1万枚 ...