第一个只出现一次的字符位置
2016-03-21 17:41
260 查看
题目描述
在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符的位置。若为空串,返回-1。位置索引从0开始设置一个哈希表,把每个字符当成索引,对应的值为出现的次数,先遍历一遍,统计出每个字符出现的次数,然后再通过遍历找到该字符的在字符串中的位置
class Solution { public: int FirstNotRepeatingChar(string str){ if(str.empty()) return -1; const int tableSize = 256; unsigned int hashTable[tableSize] = {0}; for(unsigned int i = 0; i < str.size(); i ++){ hashTable[str[i]] ++; } for(unsigned int i = 0; i < str.size(); i ++){ if(hashTable[str[i]] == 1) return i; } return -1; } };
相关文章推荐
- Windows Powershell使用哈希表
- 探索PowerShell (八) 数组、哈希表(附:复制粘贴技巧)
- 轻松学习C#的哈希表
- PHP内核探索:哈希表碰撞攻击原理
- php内核解析:PHP中的哈希表
- java中哈希表及其应用详解
- C#中HashTable的用法
- 哈希函数
- Qt中QSet的使用
- 数据结构-散列表(Hash Table)的C++实现模板
- 数据结构——哈希表
- Two Sum,3Sum,3Sum Closest,4Sum
- Java-Majority Element
- 常用算法C#实现:字符串包含问题
- 探测法的哈希表的C++实现(最新修改)
- [leetcode] Contains Duplicate 判断一数组是否有重复元素
- Zobrist哈希,研究棋类博弈必须了解的一个小工具
- LeetCode290 Word Pattern
- 哈希表单词计数
- Matlab杂记之 HashTable