在一个字符串中找到第一个只出现一次的字符,要求时间复杂度O(n)
2013-07-01 09:54
441 查看
// 在一个字符串中找到第一个只出现一次的字符.cpp : Defines the entry point for the console application. // //利用hash表,记录每一个字符出现的次数 //char占8个位,字符的最大可能数是2^8=256 #include "stdafx.h" #include <iostream> using namespace std; const int TableSize=256; char FindFirstNoRepeateChar(char *str) { unsigned int hashTable[TableSize]; for(int i=0;i<TableSize;i++) hashTable[i]=0; char *strTmp=str; while((*strTmp)!='\0') hashTable[(*strTmp++)]++; strTmp=str; while((*strTmp)!='\0') { if(hashTable[(*strTmp++)]==1) return *(--strTmp); } return *strTmp; } int _tmain(int argc, _TCHAR* argv[]) { char str[]="ab$d+a+cb$fde"; cout<<str<<endl; cout<<FindFirstNoRepeateChar(str)<<endl; system("pause"); return 0; }
相关文章推荐
- [C语言常见面试题]查询一个字符串中第一个只出现一次的字符,要求时间复杂度为O(1)
- 【每日一题】查找一个字符串中第一个只出现两次的字符。要求时间复杂度为O(N),空间复杂度为O(1)
- 给定一个字符串,查找该字符串中第一个重复出现的字符索引。要求:时间复杂度为O(n)。
- 查找一个字符串中第一个只出现两次的字符。比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
- 【剑指Offer-时间效率平衡】在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置
- 查找一个字符串中第一个只出现两次的字符,要求时间复杂度为O(N)。-替换字符串中的空格为$$$。要求时间复杂度为O(N)
- 查找字符个数--查找一个字符串中第一个只出现两次的字符。比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
- 【字符串】查找一个字符串中第一个只出现两次的字符。比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
- 查找一个字符串中第一个只出现两次的字符。比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
- 一个字符串中查找第一个只出现一次的字符 ,时间复杂度为O(N)
- 求出字符串中第一个只出现一次的字符,要求时间复杂度小于O(2n)
- 在一个字符串中找到第一个只出现一次的字符
- 在一个字符串中找到第一个只出现一次的字符
- 在一个字符串中找到第一个只出现一次的字符
- 在一个字符串中找到第一个只出现一次的字符
- 26.在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置
- 在一个字符串中找到第一个只出现一次的字符
- 在一个字符串中找到第一个仅仅出现一次的字符。
- 在一个字符串中找到第一个只出现一次的字符(java实现)
- 15. Google面试题:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b