第一个只出现一次的字符

C++ 找第一个只出现一次的字符 C++ 找第一个只出现一次的字符 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。 输入 一个字符串,长度小于100000。 输出 输出第一个仅出现一次的字符,若没有则输出no。 样例输入 abcabd 样例输出 c 这道题利用的是桶排序的算法,计算出有没有重合数组详情在代码中说 #includ... 阅读详情

第一个只出现一次的字符

题目描述

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).
 
 
 
 
提交链接: 点击
 
 
 
 
思路:
   利用map容器。其中key为字符,value为该字符在字符串中出现的次数。遍历一次字符串可以得到,时间复杂度为O(n)。
        再次遍历一个字符串,若找到在字符串中第一个出现次数为1的字符,返回其序号;否则,返回-1。
 
 
 
代码:
class Solution {
public:
    int FirstNotRepeatingChar(string str) {
        map<char,int> result;
        int len=str.length();
        for(int i=0;i<len;i++){ //遍历整个str,将每个字符对应出现的次数存入map
            result[str[i]]= ++result[str[i]];
        }
        for(int i=0;i<len;i++){
            if(result[str[i]]==1){  //找到第一个出现次数为1的字符
                return i;
                break;
            }
        }
        return -1;
    }
};

 

posted on 2018-10-21 18:47 Magic_chao 阅读(...) 评论(...) 编辑 收藏

找字符串中第一个只出现一次的字符。 方法一(不要求时间复杂度,只要求做出来) 两次循环嵌套,遍历字符串。 int find_one(char str[], int len) { int i = 0; int j = 0; int count = 0; for (i = 0; i < len; i++) { for (j = 0; j < len; j++) { if (str[i] == str[... 阅读详情

相关推荐

LeetCode——第一个只出现一次的字符(Map)

题目描述 题目主要是让我们找到第一个只出现一次的字符,如果没有并不是返回为空字符串,而是单空格,这个地方容易出错,大家一定要注意。 解题思路 博主原本想使用set来实现的,出现第二次就将其从set中去除,但是这种方法无法应对出现三次或者五次等奇数的情况。,因此后来采用了最简单的方法map遍历,然后将其次数存储到map的value中,key则是每一个单字符。 如果传入的参数是一个空字符串,则染回单空格。 初始化一个map,遍历每一个字符,并更新字符出现的次数。 遍历map的每一个item,如果it

Always-Learning 7581

02:找第一个只出现一次的字符

02:找第一个只出现一次的字符 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。 输入一个字符串,长度小于100000。 输出输出第一个仅出现一次的字符,若没有则输出no。 样例输入 abcabd 样例输出 c #in

ljf_study的博客 1249

ES8311音频Codec避坑指南:从I2C通信、电平匹配到回环测试的保姆级调试笔记

本文详细解析了ES8311音频编解码芯片的调试全流程,涵盖I2C通信建立、电平匹配、主从模式配置等关键环节。通过真实案例和实用技巧,帮助工程师快速定位和解决音频Codec常见问题,提升硬件调试效率。特别针对回环测试、功耗分析等高频故障点提供了可复用的排查方法论。

weixin_42532938的博客 275

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

题目描述 在字符串中找出第一个只出现一次的字符。 如输入"abaccdeff",则输出b。 如果字符串中不存在只出现一次的字符,返回#字符。 样例 Input:"abaccdeff" Output:'b' 解题思路 描述 本题目就是一个简单的模拟题。 首先统计各字符出现次数,然后找到第一个出现次数为一的字符,返回即可。 实现代码: /* 包含头文件: #include <unord...

YangLei253的博客 479

学习心得——COMSOL Multiphysics with MATLAB联合仿真及寻优计算

学习心得——COMSOL Multiphysics with MATLAB联合仿真及寻优计算

weixin_41678956的博客 8658

别再手动巡检了!用Zabbix 5.0 + SNMPv2自动监控华为S系列交换机(附完整命令集)

本文详细介绍了如何利用Zabbix 5.0与SNMPv2实现华为S系列交换机的自动化监控,告别低效的手动巡检。通过配置SNMPv2c安全基线、核心功能启用及Zabbix Server端深度配置,构建7×24小时监控体系,实时预警接口状态、流量波动等关键指标,大幅提升运维效率与故障响应速度。

weixin_30940783的博客 628

第一个只出现一次的字符——js

第一个只出现一次的字符 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 思路 用map记录出现的次数 新建一个对象,其中key用来存放字符,value用来存放该字符出现的次数; 第一次循环,将所有字符和对应出现的次数存放在map中,时间复杂度为0(n); 第二次循环找到value为1...

qq_40608516的博客 858

(数字ic验证)从零开始的apb_watchdog验证模块搭建(一、功能介绍与环境搭建)

apb_watchdog验证模块搭建(一)文章目录 文章目录apb_watchdog验证模块搭建(一)文章目录前言一、apb_watchdog简单功能介绍二、测试平台环境搭建1.测试所用模板介绍2.tb与interface2.env与watchdog_pkg3.test与base_sequence4.Makefile总结——当前验证结构 前言 本文介绍了apb_watchdog验证模块的搭建过程与其具体代码,主要包括其中验证环境的构建,测试序列的发送与回归测试收集。主要运用systemvorilog与u

peop1e的博客 9737

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

面试题35:第一个只出现一次的字符 1.题目描述 题目:字符串中第一个只出现一次的字符。在字符串中找出第一个只出现一次的字符。 例如,如输入"abaccdeff",则输出b。 2.题目分析 由于题目与字符出现的次数相关,那么我们是不是可以统计每个字符在该字符串中出现的次数?要达到这个目的,我们需要一个数据容器来存放每个字符的出现次数。在这个数据容器中,可以根据字符来查找它出现的次数,也就是说这个容器的作用是把一个字符映射成一个数字。在常用的数据容器中,哈希表正是这个用途。 为了解决这个问题,我

ThinPikachu的博客 642

Unity获取透明物体深度数据

Unity获取透明物体深度数据前言透明&景深需求模型透明度部分带透明通道图片/视频部分半透明模型获取深度的具体实现方法带透明度图片/视频获取深度的具体实现方法结束语 前言 最近在做的项目有很多奇怪的需求,甚至之前在unity里用插件写了一个类似于蓝图的行为树插件,之后有时间给大家讲一讲相关的实现方法,今天刚解决了unity里透明物体无法获得深度数据的问题。所以分享给大家。 透明&景...

可以吃的妙脆角的博客 2631

Vue - 快速入门,这一套就够了!(Vue core + 案例 + 效果演示)

前置条件:掌握 HTML、CSS、JavaScript、AJAX.工具:VsCode.插件:Live Server(浏览器实时预览)Ps:建议都提前下载下来,没网的时候也能用.

CYK_byte的博客 4万+

Lintcode:第一个只出现一次的字符

问题: 给出一个字符串,找出第一个只出现一次的字符。 样例: 样例 1: 输入: "abaccdeff" 输出: 'b' 解释: 'b' 是第一个出现一次的字符 样例 2: 输入: "aabccd" 输出: 'b' 解释: 'b' 是第一个出现一次的字符 python: class Solution: """ @param str:...

观月执白 264

【RH850/U2A】:功能安全

功能安全相关

3130

C语言——第一个只出现一次的字符

一、问题描述(来源:计蒜客) 二、思路一 从字符串的第二个字母开始循环,如果后续有相同的字母,则将后面相同的字母删除,该删除字母后面的字母全部往前移一位。一轮循环完后,再将开头的字母删除(如果该字母有重复)。如果后面没有找到与这个字母相同的字母,就结束循环,打印字符串的第一个字母;如果检测到这个字符串是空的,则打印no。 注:这种方法比较复杂,代码运行耗时较长,而且有几个地方不注意容易出...

仰望星空 4215

【产品经理修炼之道】- 优惠券系统从入门到精通(二)

在电商平台中,优惠券的使用场景与频次都很高。那么如何做好一个优惠券系统呢?本文总结了相关流程和设计思路,希望对你有所帮助。上一篇与大家分享了架构中的前端应用、生命周期、优惠券管理中OpenAPI 、基础系统,今天继续与大家分享架构图中优惠券模板部分。

xiaoli8748的专栏 1290

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

[剑指offer]-字符流中第一个只出现一次的字符

题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符。 思路:类似于[第一次只出现一次的字符](https://blog.youkuaiyun.com/yuemingyan...

yuemingyang7010的博客 357

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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

题目描述:   找出字符串中第一个只出现一次的字符 输入描述:   输入几个非空字符串 输出描述:   输出第一个只出现一次的字符,如果不存在输出-1 示例 输入:asdfasdfo    aaoo 输出:o    -1 题目分析:   1、首先我们看到示例的输入是多行输入,所以我们在写输入函数的时候就要使用getline函数来防止因回车导致的数据失效。   2、我们从示例输入代码的第一个字符a看起,a在后面还出现过,不符合只出现一次,所以来到第二个字符s,s也在后续出现了,… … …依次往后走,来到了.

小东的博客 2810

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

B2110 找第一个只出现一次的字符

给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。

m0_46192147的博客 1184

【面试题】找出一个字符串中第一个只出现一次的字符的位置

问题:在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 解答:可以用HashMap统计每个字符对应的次数,然后再遍历这个map找出第一个。代码如下: public int FirstNotRepeatingChar(String str) { if (str == null |...

u014259820的博客 7940

AcWing 63. 字符串中第一个只出现一次的字符

题目描述 在字符串中找出第一个只出现一次的字符。 如输入"abaccdeff",则输出b。 如果字符串中不存在只出现一次的字符,返回#字符。 样例: 输入:"abaccdeff" 输出:'b' 问题分析 先统计字符串中各字符的出现次数,存入哈希map中。然后遍历字符串,当遇到某字符的出现次数为1时,返回该字符。如果遍历结束也没有返回,那么返回‘#’。 代码实现 class...

yj_coder的博客 283

第一个只出现一次的字符(Java)

题目: 在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出'b'。 第一思路:借助于数组来做。 开辟一个长度为26的数组,用来存放字符串中每个字符出现的次数。这样第一次扫描去统计这个字符串中字符出现的次数,第二次去统计第一个出现结果为1的次数,并输出对应的字符。 public class Main { //输出0代表没有满足条件的 public stat...

Sweet Baby,甜宝 5917
上一篇: 把数组排成最小的数
下一篇: 数组中的逆序对
blbq105
博客等级 码龄11年 8粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值