剑指offer(19)-第一个只出现一次的字符
来源:互联网 发布:pitstop汉化破解版mac 编辑:程序博客网 时间:2024/04/28 11:45
题目:在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置.
思路:暴力法很容易想到,复杂度为O(n^2),一种巧妙的方法是把字符看成是整数,将它ASCII码值作为索引记录字符出现的次数,类似与计数排序的思想。返回第一次出现的频数为1的字符对应索引即可。
class Solution {public: int FirstNotRepeatingChar(string str) { if (str.size() == 0) return -1; const int tablesize = 256; unsigned int hashTable[tablesize]; int length = str.size(); for (int i = 0;i < tablesize;++i) hashTable[i] = 0; int count = 0; string pHashKey = str; while (str[count] != '\0') { hashTable[pHashKey[count]]++; count++; } pHashKey = str; count = 0; while (str[count] != '\0') { if (hashTable[pHashKey[count]] == 1) return count; count++; } return -1; }};
1 0
- 剑指offer(19)-第一个只出现一次的字符
- 【剑指offer】第一个只出现一次的字符
- 剑指offer(35)第一个只出现一次的字符
- 剑指offer--第一个只出现一次的字符
- 剑指offer-35 第一个只出现一次的字符
- 剑指Offer之 - 第一个只出现一次的字符
- 《剑指offer》第一个只出现一次的字符位置
- 剑指offer:第一个只出现一次的字符位置
- 剑指Offer--第一个只出现一次的字符位置
- 【剑指Offer】第一个只出现一次的字符位置
- 【剑指offer】之第一个只出现一次的字符
- 剑指offer:第一个只出现一次的字符位置
- [剑指offer]第一个只出现一次的字符位置
- 《剑指offer》-第一个只出现一次的字符位置
- 剑指offer|第一个只出现一次的字符位置
- 剑指Offer:第一个只出现一次的字符
- 【剑指offer】第一个只出现一次的字符
- 剑指offer----第一个只出现一次的字符
- 产品发展的不同阶段,如何利用数据来驱动产品运营?
- 解决Mac版android studio代码svn不能提交
- 8VC Venture Cup 2017 - Elimination Round B. PolandBall and Game【思维+模拟】
- 承载网之传输
- RxJava的详细介绍
- 剑指offer(19)-第一个只出现一次的字符
- 【转】苹果计划推出原创视频内容
- 阿里云CentOS pdf2htmlEX的安装
- 【c++】类型转换
- mac apache terminal启动 停止 重启
- Unity3D FPS帧数修改
- 算法提高 开灯游戏
- log4j.properties 详解与配置步骤
- kafka-python批量发送数据的方法