剑指offer 51. 字符串中第一个只出现一次的字符

简介: 剑指offer 51. 字符串中第一个只出现一次的字符

题目描述

在字符串中找出第一个只出现一次的字符。

如输入"abaccdeff",则输出b

如果字符串中不存在只出现一次的字符,返回 # 字符。


数据范围

输入字符串长度 [0,1000]。

样例:

输入:"abaccdeff"
输出:'b'



方法一:哈希表 O(n)

利用哈希表快速查找性质,可以找到对应元素。步骤如下:


  1. 先遍历一遍所有字符,用哈希表存下每个字符出现了多少次。
  2. 然后再遍历一遍所有字符,去查询该字符在哈希表中出现的次数。如果能找到 hash[i] == 1 即只出现了一次的字符,就输出该字符。
  3. 如果没有找到只出现一次的字符,就返回 #
class Solution {
public:
    char firstNotRepeatingChar(string s) {
        map<char, int>  hash;
        for (auto i : s)   hash[i]++;
        for (auto i : s)
            if (hash[i] == 1)
                return i;
        return '#';
    }
};


欢迎大家在评论区交流~

目录
相关文章
|
数据采集 小程序 Python
搞定短视频!批量下载快手视频(附源码)
相信大家都接触了短视频平台,比如某音、某手等平台,竟然大家都熟悉了,那么今天辰哥分享的技术是:在某手上搜索视频,并实现下载!
1510 0
|
6月前
|
数据采集 分布式计算 数据可视化
大数据项目成功的秘诀——不只是技术,更是方法论!
大数据项目成功的秘诀——不只是技术,更是方法论!
166 8
大数据项目成功的秘诀——不只是技术,更是方法论!
|
JavaScript 数据格式
js 计算两个时间的时间差
如题,就像题目说的需要计算出时间差,虽然不太难,但这个需求经常会在项目中遇到的,我在这边做一下整理,希望能够尽量全的整理出来。有需要的朋友可以做一下参考,喜欢的可以点波赞,或者关注一下,希望可以帮到大家。 本文首发于我的个人blog:obkoro1.com 计算时间差原理: getTime()方法 方法定义: getTime() 方法可返回距 1970 年 1 月 1 日之间的毫秒数。 通常我们计算时间差都是通过获取两个时间数据,然后分别使用getTime()方法返回与固定的1970 年 1 月 1 日的时间差,通过对返回毫秒数的差,换算成时间单位,得出两个时间的时间差。 开始操作:
1270 0
js 计算两个时间的时间差
|
11月前
|
JavaScript 前端开发
__proto__和prototype的区别
`prototype`和`__proto__`虽然都与JavaScript的原型继承和对象关系密切相关,但它们的定义、所属对象、作用和功能等方面存在着明显的区别。理解它们之间的区别对于深入掌握JavaScript的面向对象编程和原型链机制非常重要
|
机器学习/深度学习 数据采集 人工智能
使用Python实现简单的机器学习分类器
【8月更文挑战第37天】本文将引导读者了解如何利用Python编程语言构建一个简单的机器学习分类器。我们将从基础概念出发,通过代码示例逐步深入,探索数据预处理、模型选择、训练和评估过程。文章旨在为初学者提供一条清晰的学习路径,帮助他们理解并实现基本的机器学习任务。
|
边缘计算 人工智能 物联网
传统架构与RISC-V架构有什么区别?
计算机架构的发展经历了多个阶段,从最早的CISC(复杂指令集计算机)到后来的RISC(精简指令集计算机)。RISC-V作为一种新兴的RISC架构,以其开放性和模块化设计受到广泛关注。
350 2
|
机器学习/深度学习 Dart TensorFlow
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(5)
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(5)
355 0
|
7月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化的自适应马尔科夫链蒙特卡洛(Adaptive-MCMC)算法matlab仿真
本项目基于贝叶斯优化的自适应马尔科夫链蒙特卡洛(Adaptive-MCMC)算法,实现MATLAB仿真,并对比Kawasaki sampler、IMExpert、IMUnif和IMBayesOpt四种方法。核心在于利用历史采样信息动态调整MCMC参数,以高效探索复杂概率分布。完整程序在MATLAB2022A上运行,展示T1-T7结果,无水印。该算法结合贝叶斯优化与MCMC技术,通过代理模型和采集函数优化采样效率。
|
10月前
【12月更文挑战第15天】
【12月更文挑战第15天】
157 7
|
机器学习/深度学习 数据处理 数据库
基于Django的深度学习视频分类Web系统
基于Django的深度学习视频分类Web系统
174 4
基于Django的深度学习视频分类Web系统