剑指 Offer 50. 第一个只出现一次的字符

2023-10-31

剑指 Offer 50. 第一个只出现一次的字符

题目

在这里插入图片描述

题目链接

https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/

具体代码

集合缓存法

class Solution {
    public char firstUniqChar(String s) {
    	// 用 Map 缓存,key:字节,value:是否重复出现
    	// 最后只要找到没有重复出现的 value 返回即可
    	// 因为题目要求返回第一个非重复字节,因此要求是有序的,用 LinkedHashMap
        Map<Character, Boolean> map = new LinkedHashMap();
        for (Character character : s.toCharArray()) {
            map.put(character, map.containsKey(character));
        }
        for (Character key : map.keySet()) {
            if (!map.get(key)) {
                return key;
            } 
        }
        return ' ';
    }
}

索引比较法

class Solution {
    public char firstUniqChar(String s) {
    	// 比较第一个与最后一次出现的索引是否相同
    	// 简单好理解,就是效率会低点
        for (char str : s.toCharArray()) {
            if (s.indexOf(str) == s.lastIndexOf(str)) {
                return str;
            }
        }
        return ' ';
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

剑指 Offer 50. 第一个只出现一次的字符 的相关文章

随机推荐

  • 龙芯 buildroot 使用详解

    龙芯 buildroot 使用详解 一般文件系统都要包含很多第三方软件 如 busybox tftp apache PHP DNS qt等等 为了避免繁琐的移植工作 buildroot应运而生 通过menuconfig来配置我们需要的功能
  • 基于Golang的gRPC框架使用与开发

    一 gRPC 基础 包括 rpc gRPC Protobuf 等概念 网上已经有详细的介绍 此处不再过多说明 关于 gRPC 的介绍 可以参考官方介绍文档 以及微软官方文档介绍 通俗的来说 gRPC 是一种 rpc 的具体实现 其利用 Pr
  • 五、STL容器:STL算法总结

    5 STL算法 5 1 构成 头文件 功能
  • 从被吐槽的Amazon看,如何建设好的on call机制?

    对于每个程序员来说 进入市值万亿的Amazon工作 似乎都是一件值得骄傲的事 但只要在网络上一提起Amazon 关于它的on call 机制的吐槽就会此起彼伏 要知道在互联网公司 on call应该是非常普遍的现象 但大家为什么对Amazo
  • 职工管理系统(超详细版c++)

    一 项目概述 编写一个有添加 删除 修改 显示 排序 查找功能的职工管理系统 对一些职工的信息进行处理 保存到文本文件中 便于后续使用 二 创建项目 在本篇文章中我们使用vs2022版本编写程序 为了使我们的代码结构严谨 减少冗余 便于修改
  • 我从未结束的Java之旅(二)

    目录 大胆北漂 餐饮 团队扩张 扩张的烦恼 团队管理的探索 大胆北漂 餐饮 团队扩张 由于公司业务的扩展以及战略方向的变更 之前负责得小团队不得不扩招 由5个人得团队补充到了20人 当时我们saas服务已经很庞大了 基本涉及到餐饮相关的所有
  • Go语言之JSON解码函数Unmarshal

    直接上代码 package main import encoding json fmt 定义Actress结构体 type Actress struct Name string Birthday string BirthPlace stri
  • springboot 之 JPA

    一 说明 JPA提供了操作数据库的接口 在开发过程中继承和使用这些接口 可简化现有的持久化开发的工作 二 JPA提供的接口 1 JpaRepository JpaRepository继承自PagingAndSortingRepository
  • P1541 [NOIP2010 提高组] 乌龟棋(dp)dp5

    https www luogu com cn problem P1541 include
  • 【MySQL】表的内外连接

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 内连接 表1 inner join 表2 on 1 显
  • DBNN实验进展

    实验环境 cpu version 1 Precsion Recall f1 scorem precision of mbnn is 0 8756 recall of mbnn is 0 8670 f1 score of mbnn is 0
  • 元宇宙(四)ROBLOX

    至2019年 已有超过500万的青少年开发者使用Roblox开发3D VR等数字内容 吸引的月活跃玩家超1亿 Roblox在玩法上进一步创新升级 类型更全面 除了传统的探索建造类沙盒玩法外 Roblox还覆盖主流的角色扮演 第一人称射击 动
  • 第9届Python编程挑战赛北京赛区复赛真题剖析-2023年全国青少年信息素养大赛

    导读 超平老师计划推出 全国青少年信息素养大赛Python编程真题解析 50讲 这是超平老师解读Python编程挑战赛系列的第16讲 全国青少年信息素养大赛 原全国青少年电子信息智能创新大赛 是 世界机器人大会青少年机器人设计与信息素养大赛
  • 不同格式点云存储结构(txt、pcd、las、ply)整理以及基本的读写、可视化方法

    不同格式点云存储结构整理以及基本的读写 可视化方法 一 文本 txt 1 1 存储结构 1 2 读取 二 PCD格式 1 1 存储结构 1 2 读写 1 2 1 open3d读写 python 1 2 2 PCL读写 C 三 LAS格式 3
  • 基于马尔可夫链的写作机器人软件

    数据结构课设 二 作业要求 设计并实现一个基于马尔可夫链的写作机器人软件 软件通过对素材文本的学习 建立词库以及单词的马尔可夫链 然后使用所建立的单词马尔可夫链配合随机数选择 自动生成一段文字 分析 由于不太清楚老师的具体要求 所以在网上找
  • 微信小程序如何根据不同用户切换不同TabBar

    现有需求 小程序用户有三种身份 公众 运维人员 领导 根据不同用户身份显示不同的tabbar 众所周知微信小程序全局文件app json里面的 tabBar 里面的list只能放置2 5个 要想实现3个tabbar 必须得复用tabbar
  • 回归分析详解及matlab实现

    当人们对研究对象的内在特性和各因素间的关系有比较充分的认识时 一般用机理分析方法建立数学模型 如果由于客观事物内部规律的复杂性及人们认识程度的限制 无法分析实际对象内在的因果关系 建立合乎机理规律的数学模型 那么通常的办法是搜集大量数据 基
  • 惊!STM32 蓝牙串口模块(H21/JDY-31) 竟如此简单!

    惊 STM32 蓝牙串口模块 H21 JDY 31 竟如此简单 文章日志 1 写于2022 08 19 文章目录 1 认识蓝牙串口模块 2 困扰我很久的实验竟如此简单 3 一些现象的思考 1 认识蓝牙串口模块 JDY 31 蓝牙基于蓝牙 3
  • sql服务器显示空白,sql服务器空白

    sql服务器空白 内容精选 换一换 登录Windows操作系统的裸金属服务器时 需使用密码方式登录 因此 用户需先根据创建裸金属服务器时使用的密钥文件 获取该裸金属服务器初始安装时系统生成的管理员密码 Administrator帐户或Clo
  • 剑指 Offer 50. 第一个只出现一次的字符

    剑指 Offer 50 第一个只出现一次的字符 题目 题目链接 具体代码 集合缓存法 索引比较法 题目 题目链接 https leetcode cn com problems di yi ge zhi chu xian yi ci de z