题目描述

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).

解题思路

设置一个计数数组,下标表示字符的ASCII码,本身的数据表示出现的次数,初始化为0。遍历整个字符串,把字符串的字符映射到ASCII码并计数。之后遍历一遍pos数组,把第一个是1的返回即可。时间复杂度是O(N)O(N)O(N),N是字符串的长度。

AC代码

class Solution {public:int FirstNotRepeatingChar(string str) {if(str.empty()) {return -1;}int pos[256] = {0};int len = str.length();for(int i = 0; i < len; ++i) {pos[int(str[i] - NULL)]++;}for(int i = 0; i < len; ++i) {if(pos[int(str[i] - NULL)] == 1) {return i;}}return -1;}
};

剑指Offer之第一个只出现一次的字符相关推荐

  1. 【LeetCode】剑指 Offer 50. 第一个只出现一次的字符

    [LeetCode]剑指 Offer 50. 第一个只出现一次的字符 文章目录 [LeetCode]剑指 Offer 50. 第一个只出现一次的字符 一.哈希表 二.有序哈希表 本题考查哈希表的使用, ...

  2. 剑指offer:第一个只出现一次的字符

    题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 解题思路 class So ...

  3. [剑指offer] 34. 第一个只出现一次的字符

    题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 一次遍历存储到哈希表 一次 ...

  4. 《剑指offer》-- 第一个只出现一次的字符、数组中只出现一次的数字、字符流中第一个不重复的字符、数组中重复的数字

    一.第一个只出现一次的字符: 1.题目: 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写 ...

  5. 【算法】剑指 Offer 50. 第一个只出现一次的字符

    1.概述 在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. s 只包含小写字母. 示例 1: 输入:s = "abaccdeff" 输出:'b' 示例 2: ...

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

    剑指 Offer 50. 第一个只出现一次的字符 class Solution {public:char firstUniqChar(string s) {unordered_map<char, ...

  7. 剑指offer:数组中只出现一次的数字

    题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 解题思路 用容器存次数. class Solution { public:void FindNu ...

  8. 剑指Offer(1)——第一章面试的流程

    目录 前言 正文 一.经验 二. 常见题目 1. 把一个字符串转换成整数 2. 求链表中的倒数第n个节点 三.测试相关内容 1. 白盒测试 2. 黑盒测试 3. 自动化测试 参考 前言 剑指Offer ...

  9. 《剑指offer》-数组中只出现一次的数字

    /* 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字.思路: 如果是只有一个数字出现一次,那么所有数字做异或就得到结果: 现在有两个数字x,y分别出现一次, ...

最新文章

  1. 《敏捷软件开发》第二章极限编程实践
  2. html中嵌入天气预报
  3. 存储过程,触发器,分页练习
  4. plex实现流媒体服务器_Plex继续远离服务器,提供网络节目
  5. python序列化对象的函数_使 Python 对象可序列化的函数
  6. BlogEngine.Net架构与源代码分析系列part12:页面共同的基类——BlogBasePage
  7. linux getline函数用法,Linux文本处理三剑客之awk学习笔记05:getline用法详解
  8. 图解Picasso源码
  9. [转][python] 常用正则表达式爬取网页信息及分析HTML标签总结
  10. 模拟CMOS 集成电路设计
  11. 如何在云帮上配置https
  12. Java MMdd 日期格式转换问题
  13. 上映4天,票房7.4亿的《海王》,用Python分析数据看大片!
  14. 计算英文句子中有多少单词?
  15. 电脑视频转换成mp4格式,视频格式转换器转换
  16. 蓝桥云算法题之棋盘放麦子——Python满分解答
  17. 切绳子题解(博客搬家)
  18. 面试记录留给自己做纪念
  19. 打开i信服务器正在运行中,【网络异常,0/12157 Unknown】i信登录时出现
  20. Spark Hadoop 环境搭建http://www.jianshu.com/p/5b1eafdf34a9

热门文章

  1. nlp-tutorial代码注释2-1,CNN用于句子分类简介
  2. Java 1.1.5 空串与 Null 串
  3. ~~高精度除以低精度
  4. PyTorch——PyTorch也支持通过累加操作实现大的BatchSize的训练
  5. 像python一样运行js的__main__
  6. MQTT 控制报文 - PINGREQ心跳报文,PINGRESP - 第4章
  7. 【分享】请回答1988(二)
  8. IGMP协议——IP组播之组管理协议
  9. Spring beans配置方案(一) 学习笔记
  10. Tri_integral Summer Training 9 总结