C++笔试在一个字符串中找到第一个只出现一次的字符,要求时间复杂度O(n)

要在一个字符串中找到第一个只出现一次的字符,并且要求时间复杂度为O(n),可以使用哈希表来解决。具体思路如下:

1、创建一个哈希表,用于记录每个字符出现的次数。
2、第一次遍历字符串,将每个字符及其出现的次数存储到哈希表中。
3、第二次遍历字符串,检查每个字符在哈希表中的出现次数。
·如果该字符出现次数为1,则返回该字符。
4、如果没有找到只出现一次的字符,则返回空字符或其他特定值。
下面是用C++实现的代码示例:

#include <iostream>
#include <unordered_map>
using namespace std;char firstUniqueChar(const string& str) {unordered_map<char, int> charCount;// 第一次遍历,统计字符出现次数for (char c : str) {charCount[c]++;}// 第二次遍历,找到第一个只出现一次的字符for (char c : str) {if (charCount[c] == 1) {return c;}}// 没有找到只出现一次的字符return '\0'; // 返回空字符表示未找到
}int main() {string str;cout << "请输入一个字符串: ";cin >> str;char result = firstUniqueChar(str);if (result != '\0') {cout << "第一个只出现一次的字符是: " << result << endl;} else {cout << "未找到只出现一次的字符" << endl;}return 0;
}

以上代码通过哈希表记录每个字符的出现次数,然后再遍历字符串查找第一个只出现一次的字符。时间复杂度为O(n),其中n为字符串的长度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/591548.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue-amap在vue中引入方式

1.安装 vue-amap 插件。你可以通过在终端中运行以下命令来安装&#xff1a; npm install vue-amap --save2.在main.js文件中引入 vue-amap 并初始化高德地图&#xff1a; import Vue from vue; import VueAMap from vue-amap;Vue.use(VueAMap); VueAMap.initAMapApiLoader({k…

华为交换机入门(六):VLAN的配置

VLAN&#xff08;Virtual Local Area Network&#xff09;即虚拟局域网&#xff0c;是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。VLAN内的主机间可以直接通信&#xff0c;而VLAN间不能直接互通&#xff0c;从而将广播报文限制在一个VLAN内。 VLAN 主要用来解决如何…

【node.js】使用nvm切换node环境

使用 nvm 切换 Node.js 版本的步骤如下&#xff1a; 一、安装步骤 安装之前卸载node.js 一定要把原先的node.js卸载掉&#xff0c;使用控制面板卸载或者找到相应文件删掉。删完之后检查最好一遍。详情见【node.js】如何确保node.js卸载干净。 安装 nvm&#xff1a; 如果你还没…

企业工商信息数据哪里获取?工商全量信息有什么渠道?

随着互联网的发展和普及&#xff0c;越来越多的企业选择在网上进行业务推广和品牌宣传。对于一些想要了解企业工商信息的用户来说&#xff0c;如何获取企业工商信息数据成了一个非常重要的问题。下面分享获取企业工商全量信息的渠道和方式&#xff1a; 首先&#xff0c;我们可以…

浏览器---善用的一些调试技巧

https://www.cnblogs.com/dasusu/p/17932742.html

用《Object-Occluded Human Shape and Pose Estimation from a Single Color Image》代码

https://gitee.com/seuvcl/CVPR2020-OOH 极简 注意事项&#xff1a; 把basicmodel_neutral_lbs_10_207_0_v1.1.0.pkl下下来改名SMPL_NEUTRAL.pkl后放进data。不能直接用smplx的&#xff0c;里面数据结构不太兼容目前代码只支持输入图片的文件夹&#xff0c;急着用所以就视频单…

使用bpftrace+GDB尽早attach启动时间不定的进程

引言 曾经在stackoverflow看到过一篇求助帖子《Is there any way to tell GDB to wait for a process to start and attach to it?》,大体问题:工具链上调用关系很长,父进程调用子进程,子进程调用孙进程,如此下去,最后有一个进程崩溃了,提问者期望在崩溃之前用GDB att…

C++的魅力与奥秘:工作原理、特性及应用深度解析---探索其发展历程与运行机制

一、引言 C是一种功能强大的编程语言&#xff0c;它的诞生和发展历程与计算机科学的飞速进步密不可分。作为C语言的扩展&#xff0c;C不仅保留了C语言的高效性能&#xff0c;而且引入了面向对象编程的概念&#xff0c;为程序员提供了更丰富的工具和更高效的开发方式。面向对象编…

记一次Oracle Cloud计算实例ssh恢复过程

#ssh秘钥丢失# &#xff0c; #Oracle Cloud# 。 电脑上的ssh秘钥文件不知道什么时候丢失了&#xff0c;直到用的时候才发现没有了&#xff0c;这下可好&#xff0c;Oracle Cloud的计算实例连不上了&#xff0c;这个实例只能通过ssh连接上去&#xff1a; 以下是解决步骤&#x…

Superset二次开发之部署问题汇总(持续更新ing)

1.ERROR: Could not build wheels for python-geohash, which is required to install pyproject.toml-based projects # 缺少 geohash whl 文件, 下载地址 www.lfd.uci.edu/~gohlke/pythonlibs/ pip install geohash文件路径 2. AttributeError: module sqlparse.keywords has…

如何在 VeriStand 中设置反射内存通道--5565PIORC

环境 硬件 cPCI-5565PIORC 软件 VeriStand 我正在设置我的反射内存 PXI 卡&#xff08;例如 cPCI-5565PIORC&#xff09;。 我可以在我的 PXI 系统之间使用反射内存发送/接收什么&#xff1f; 如何设置我的 PXI 系统之间共享的通道&#xff1f; 使用反射内存&#xff0c;您可…

梯度下降算法 寻找函数最小值 找最快下山路线 python写个梯度下降算法示例

梯度下降算法是一种用于寻找函数最小值的优化算法。 它在机器学习和深度学习中被广泛使用&#xff0c;特别是在训练神经网络时。我们可以通过一个简单的生活中的例子来理解它&#xff1a; 想象你在一座山上&#xff0c;需要找到最快的路线下山。你不能一眼看到最低点&#xf…

【深度学习下载大型数据集】快速下载谷歌云盘数据集

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 跑深度学习的时候,一些数据集比较大,比如60多个G,而且只是训练集. 然后这些数据是由某些实验室组采集的,并不像一些大公司搞的,一般都直接方法一些网盘中. 如果是谷歌网盘,本身通过代理也不麻烦,但是发现即使通过代…

计算机毕业设计——SpringBoot社区物业管理系统(附源码)

1&#xff0c; 概述 1.1 课题背景 近几年来&#xff0c;随着物业相关的各种信息越来越多&#xff0c;比如报修维修、缴费、车位、访客等信息&#xff0c;对物业管理方面的需求越来越高&#xff0c;我们在工作中越来越多方面需要利用网页端管理系统来进行管理&#xff0c;我们…

​iOS实时查看App运行日志

目录 一、设备连接 二、使用克魔助手查看日志 三、过滤我们自己App的日志 &#x1f4dd; 摘要&#xff1a; 本文介绍了如何在iOS iPhone设备上实时查看输出在console控制台的日志。通过克魔助手工具&#xff0c;我们可以连接手机并方便地筛选我们自己App的日志。 &#x1f4…

AndroidStudio导入程序、项目(教程)

目录 1. 首先解压压缩包&#xff0c;转为文件夹 2. 打开解压好的项目文件夹&#xff0c;删除.gradle和.idea这两个文件 3. 修改bulid.gradle文件&#xff0c;将gradle的版本型号改成自己的 (1) 传统结构 (2) 简洁结构 4. 打开android stdio软件&#xff0c;导入已经修改好…

【搜索引擎】elastic search核心概念

前言 本文不涉及ES的具体安装下载、操作、集群的内容&#xff0c;这部分内容会放在后面一篇文章中。本文只包含ES的核心理论&#xff0c;看完本文再去学ES的细节会事半功倍。 目录 1.由日志存储引出的问题 2.什么是ES&#xff1f; 3.ES的数据结构 4.ES的核心原理 5.联系作…

如何使用SeaFile搭建本地私有云盘并结合cpolar实现远程访问

文章目录 1. 前言2. SeaFile云盘设置2.1 SeaFile的安装环境设置2.2 SeaFile下载安装2.3 SeaFile的配置 3. cpolar内网穿透3.1 Cpolar下载安装3.2 Cpolar的注册3.3 Cpolar云端设置3.4 Cpolar本地设置 4.公网访问测试5.结语 1. 前言 现在我们身边的只能设备越来越多&#xff0c;…

系列三、下载 安装Nacos(单机版)

一、下载 & 安装Nacos&#xff08;单机版&#xff09; 1.1、下载 官网&#xff1a;https://github.com/alibaba/nacos/releases?page3 我分享的&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1-RNX1Jt3s4cwhWUzUqEHhg?pwdyyds 提取码&#xff1a;yyds 1.2、安…

Vuex(vue2中的状态机)

目录 Vuex state属性 getters属性 mutations属性 actions属性 modules属性 辅助函数 Vuex 状态管理模式 维护公共状态 公共数据 使用状态机模块维护状态 A组件中分发工作&#xff08;发起异步请求)--->获取数据--->提交突变(将数据提交给突变 ) 通过突变修改状态…