Microsoft100——17.出现一次的字符
来源:互联网 发布:北京大学大数据研究院 编辑:程序博客网 时间:2024/04/29 15:12
题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b.
分析:最简单的方法就是不断的循环,得出每一个字符的出现次数,但是这样时间复杂度为O(n2),后来想了几种改进算法,虽然有点进步但时间复杂度任然是O(n2)。
最后还是利用哈希表的思想,利用空间换时间的策略,得到了一个很好的方法。
因为是一个字符,所以我们建立一个256的数组,利用字符的ASCII码的值为下标。记录字符出现的次数。
代码如下:
#include <iostream>#include <string>using namespace std;void findChar(string &s){int str[256]={0};for (int i=0 ; i<s.size() ; ++i){str[s[i]]++;}for (int i=0 ; i<s.size() ; ++i){if (str[s[i]]==1){cout<<s[i]<<endl;return;}}}void main(){string s="abaccdeff";findChar(s);system("pause");}
0 0
- Microsoft100——17.出现一次的字符
- Microsoft100——20.字符转整数
- 解题报告——第一次只出现一次的字符
- String——第一个只出现一次的字符
- 剑指offer——第一次只出现一次的字符
- 剑指offer——第一次只出现一次的字符
- Microsoft100——12.求和
- Microsoft100——02.min函数的栈
- Microsoft100——05.查找最小的k个元素
- Microsoft100——001.旋转数组的最小数字
- 只出现一次的字符
- 第一次出现一次的字符
- Microsoft100——10.翻转单词
- Microsoft100——14.找数
- Microsoft100——003.链表反转
- Microsoft100——007.快速排序
- 第一个只出现一次的字符——map的使用
- Python用于文本分析的一个demo—统计文档中只出现一次的字符
- windows下Appium安装教程
- 在 Qt Release 版本里正确使用图像编码库
- Linux删除文件后没有释放空间
- 面向对象的设计原则
- javascript面向对象基础
- Microsoft100——17.出现一次的字符
- PHP自动加载
- spring mvc参数绑定
- Flex使用Blazeds与Java交互及自定义对象转换详解
- zoj1789(并查集)
- HTML5表单及其验证
- 基于visual Studio2013解决算法导论之004随机排列数组
- Qt之系统托盘(QSystemTrayIcon详解)
- python中的*args和**kwargs