面试题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:第一个只出现一次的字符相关推荐

  1. 剑指offer面试题[35]-第一个只出现一次的字符

    题目描述 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置. 分析:        这个题目最直观的思路是:从头开始扫描这个字符串 ...

  2. 剑指Offer - 面试题50. 第一个只出现一次的字符(unordered_map)

    1. 题目 在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. 示例: s = "abaccdeff" 返回 "b"s = "&q ...

  3. 剑指offer面试题50. 第一个只出现一次的字符(哈希表)

    题目描述 在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. s 只包含小写字母. 思路 详见链接 代码 class Solution:def firstUniqueChar(se ...

  4. 【剑指offer-Java版】35第一个只出现一次的字符

    第一个只出现一次的字符: 对于给定的字符,遍历一遍,然后将其映射到一个hash表中,遍历完成之后,遍历哈希表, 遇到的第一个哈希值为1所对应的字符就是第一个只出现了一次的字符 public class ...

  5. 剑指offer——面试题35:第一个只出现一次的字符

    剑指offer--面试题35:第一个只出现一次的字符 Solution1: 垃圾算法不看也罢!自己想到的垃圾算法 class Solution { public:int FirstNotRepeati ...

  6. 剑指offer面试题[40]-数组中只出现一次的数字

    题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 注意原题目要求空间复杂度为0(1). 位运算的具体思路可以参看剑指offer. class So ...

  7. 剑指offer面试题35. 复杂链表的复制(DFS)(深拷贝)

    题目描述 请实现 copyRandomList 函数,复制一个复杂链表.在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null. ...

  8. Java详解剑指offer面试题50--第一个只出现一次的字符

    Java详解剑指offer面试题50–第一个只出现一次的字符 找出字符串中找出第一个只出现一次的字符,比如输入"abacceff",则输出'b' 要想知道某个字符是不是只出现了一次 ...

  9. 剑指offer——面试题55:字符流中第一个不重复的字符

    剑指offer--面试题55:字符流中第一个不重复的字符 Solution1: 当年第一次做这个题的做法 对此题最大的感想是: 1)区分deque(双端队列)和queue(队列): 2)要熟悉queu ...

最新文章

  1. Web前端学习有哪些技巧?
  2. css处理超出文本截断问题的两种情况(多行或者单行)
  3. CListBox的函数
  4. 下载输入python之小说下载器version2.0
  5. 年薪20万的前端工程师成长线路指南!
  6. This application is only supported on Windows 8.1, Windows Server 2012 R2, or hi gher.
  7. 部署桌面虚拟化时要考虑的因素
  8. 由一个DEBUG说开去
  9. 02129 信息资源建设《信息资源管理(第2版) 电子工业出版社 肖明著》考点整理
  10. Python天气查询系统(连接数据库版)
  11. UINO优锘:EMV,让IT告警实现至繁归于至简
  12. YYC松鼠短视频系统完整版的文件结构目录介绍以及自定义目录详解
  13. 【开发工具】 我居然可以使用Office Tool Plus 安装上Office 真的是太不可思议了
  14. JAVA构造器、静态上下文的执行时机与代码执行顺序详解
  15. CentOS常用zip压缩和解压缩命令
  16. 拼图游戏 玩法介绍及其代码实现(有意思的JS 一)
  17. 10个免费的ppt模板素材网站
  18. iview table数据直接导出_(excel表格数据导入导出)iView如何实现excel导入导出
  19. #今日论文推荐# DeepMind将范畴论、抽象代数组合,发现GNN与DP之间的联系
  20. RetinaNet系列1:ResNet和FPN部分总结

热门文章

  1. linux c之gcc -g file.c -o file提示warning: no newline at end of file
  2. IOS之学习笔记十五(协议和委托的使用)
  3. C语言之malloc和free总结
  4. 按一行一行的方法将一个文本文件复制到另一个文件中_命令行技巧:分割文件内容...
  5. java黄油刀_一篇文章玩转ButterKnife,让代码更简洁
  6. python mssql github_GitHub上最热门的开源项目都在这里了
  7. python ctypes 指针_Python Ctypes传递.h文件中定义的结构指针。
  8. 此内容过于真实,引起强烈舒适
  9. 颜宁分享干货:给实验室博士的一些忠告
  10. 颠覆传统,仅银行卡大小充电宝,10000mAh可登机,手机党出门随身必备!