面试题39:第一个只出现一次的字符
来源:互联网 发布:mac清理微信缓存 编辑:程序博客网 时间:2024/06/05 09:05
题目:
在字符串中找出第一个只出现一次的字符。
边界条件及异常:
字符串为空,没有只出现一次的字符。
思路:
可以用hash表来存储出现的字符,然后记录出现的次数,然后按顺序查找第一个次数为1的字符,输出即可。
时间复杂度:O(n)
空间复杂度:O(n)
当然总共有256个字符,所以可以定义大小为256的字符数组,这样空间复杂度为O(1)。
#include <iostream> #include <vector> #include <queue>#include <string> #include <stack> #include <algorithm> #include <hash_set> //for hashtable#include <hash_map>#include <unordered_map>#include <set>#include <ctime>using namespace std;char firstAppearOneTime(string str){if (str.size() == 0) return '\0';vector<int> hash(256,0);char *index = &str[0];while (*index != '\0'){hash[*index]++;index++;}index = &str[0];while (*index != '\0'){if (hash[*index] == 1) return *index;index++;}return '\0';}int main(){cout << firstAppearOneTime("abcacbd") << endl;return 0;}
0 0
- 面试题39:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题 <第一个只出现一次的字符>(11)
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题 35: 第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题35. 第一个只出现一次的字符
- 程序员面试题精选(13):第一个只出现一次的字符
- 程序员面试题精选100题(13)-第一个只出现一次的字符
- 微软,Google面试题 (13) —— 第一个只出现一次的字符
- uboot系列之-----顶层Makefile分析(一)
- BAT解密:互联网技术发展之路(8)- 用户层技术剖析
- Tomcat--系统架构与设计模式,第 2 部分: 设计模式分析
- struts2.0学习之路(一)
- Android性能优化的一些总结
- 面试题39:第一个只出现一次的字符
- jquery判断输入的为数字
- VirtualBox虚拟机迁移成功
- 微信公众号API使用总结
- 【转】 解决/usr/bin/ld: cannot find -lxxx
- Atlas 、cobar
- iOS开发——keychain的使用
- onMeaSure()的个人理解
- Windows编程 Windows窗口的从诞生到死亡