[剑指offer]面试题35:第一个只出现一次的字符
面试题35:第一个只出现一次的字符
题目:在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出’b’。
代码如下:
char FirstNotRepeatingChar(char *pString)
{if (pString == nullptr) return '\0';const int tableSize = 256;unsigned int hashTable[tableSize];for (unsigned int i = 0; i < tableSize; i++)hashTable[i] = 0;char *pHashKey = pString;while (*(pHashKey) != '\0') hashTable[*(pHashKey++)]++;pHashKey = pString;while (*pHashKey != '\0'){if (hashTable[*pHashKey] == 1) return *pHashKey;pHashKey++;}return '\0';
}
测试用例:
● 功能测试(字符串中存在只出现一次的字符,字符串中不存在只出现一次字符,字符串中所有字符都只出现一次)。
● 特殊输入测试(字符串为NULL指针)。
本题考点:
● 考查对数组、字符串的编程能力。
● 考查对哈希表的理解及运用。
● 考查对时间效率及空间效率的分析能力。当面试官提示最直观的算法不是最优解的时候,应聘者需要立即分析出这种算法的时间效率。在想出基于哈希表的算法之后,应聘者也应该分析出该方法的时间效率和空间效率分别是O(n)和O(1)。
[剑指offer]面试题35:第一个只出现一次的字符相关推荐
- 剑指offer面试题[35]-第一个只出现一次的字符
题目描述 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置. 分析: 这个题目最直观的思路是:从头开始扫描这个字符串 ...
- 剑指Offer - 面试题50. 第一个只出现一次的字符(unordered_map)
1. 题目 在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. 示例: s = "abaccdeff" 返回 "b"s = "&q ...
- 剑指offer面试题50. 第一个只出现一次的字符(哈希表)
题目描述 在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. s 只包含小写字母. 思路 详见链接 代码 class Solution:def firstUniqueChar(se ...
- 【剑指offer-Java版】35第一个只出现一次的字符
第一个只出现一次的字符: 对于给定的字符,遍历一遍,然后将其映射到一个hash表中,遍历完成之后,遍历哈希表, 遇到的第一个哈希值为1所对应的字符就是第一个只出现了一次的字符 public class ...
- 剑指offer——面试题35:第一个只出现一次的字符
剑指offer--面试题35:第一个只出现一次的字符 Solution1: 垃圾算法不看也罢!自己想到的垃圾算法 class Solution { public:int FirstNotRepeati ...
- 剑指offer面试题[40]-数组中只出现一次的数字
题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 注意原题目要求空间复杂度为0(1). 位运算的具体思路可以参看剑指offer. class So ...
- 剑指offer面试题35. 复杂链表的复制(DFS)(深拷贝)
题目描述 请实现 copyRandomList 函数,复制一个复杂链表.在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null. ...
- Java详解剑指offer面试题50--第一个只出现一次的字符
Java详解剑指offer面试题50–第一个只出现一次的字符 找出字符串中找出第一个只出现一次的字符,比如输入"abacceff",则输出'b' 要想知道某个字符是不是只出现了一次 ...
- 剑指offer——面试题55:字符流中第一个不重复的字符
剑指offer--面试题55:字符流中第一个不重复的字符 Solution1: 当年第一次做这个题的做法 对此题最大的感想是: 1)区分deque(双端队列)和queue(队列): 2)要熟悉queu ...
最新文章
- Web前端学习有哪些技巧?
- css处理超出文本截断问题的两种情况(多行或者单行)
- CListBox的函数
- 下载输入python之小说下载器version2.0
- 年薪20万的前端工程师成长线路指南!
- This application is only supported on Windows 8.1, Windows Server 2012 R2, or hi gher.
- 部署桌面虚拟化时要考虑的因素
- 由一个DEBUG说开去
- 02129 信息资源建设《信息资源管理(第2版) 电子工业出版社 肖明著》考点整理
- Python天气查询系统(连接数据库版)
- UINO优锘:EMV,让IT告警实现至繁归于至简
- YYC松鼠短视频系统完整版的文件结构目录介绍以及自定义目录详解
- 【开发工具】 我居然可以使用Office Tool Plus 安装上Office 真的是太不可思议了
- JAVA构造器、静态上下文的执行时机与代码执行顺序详解
- CentOS常用zip压缩和解压缩命令
- 拼图游戏 玩法介绍及其代码实现(有意思的JS 一)
- 10个免费的ppt模板素材网站
- iview table数据直接导出_(excel表格数据导入导出)iView如何实现excel导入导出
- #今日论文推荐# DeepMind将范畴论、抽象代数组合,发现GNN与DP之间的联系
- RetinaNet系列1:ResNet和FPN部分总结
热门文章
- linux c之gcc -g file.c -o file提示warning: no newline at end of file
- IOS之学习笔记十五(协议和委托的使用)
- C语言之malloc和free总结
- 按一行一行的方法将一个文本文件复制到另一个文件中_命令行技巧:分割文件内容...
- java黄油刀_一篇文章玩转ButterKnife,让代码更简洁
- python mssql github_GitHub上最热门的开源项目都在这里了
- python ctypes 指针_Python Ctypes传递.h文件中定义的结构指针。
- 此内容过于真实,引起强烈舒适
- 颜宁分享干货:给实验室博士的一些忠告
- 颠覆传统,仅银行卡大小充电宝,10000mAh可登机,手机党出门随身必备!