您的位置:首页 > 职场人生

面试题35:第一个只出现一次的字符

2016-05-10 15:49 330 查看
题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。

/*************************************************************************
> Created Time: Tue 10 May 2016 12:17:48 PM PKT
************************************************************************/

#include<iostream>
using namespace std;

char FirstNotRepeatChar(char* str)
{
if(str==NULL){
return '\0';  //注意一定是\0
}

int hash[256];  //重点,需要初始化,依赖系统初始化不可靠
for(int i=0;i<256;i++){
hash[i]=0;
}

char* c=str;
while(*c!='\0'){
hash[*c]++;
c++;
}

c=str;
while(*c!='\0'){
if(hash[*c]==1){
return *c;
}
c++;
}
return '\0';
}

//测试
void test()
{
char* str="abaccdeff";
char c=FirstNotRepeatChar(str);
cout<<c<<endl;
}


①判断多个字符是不是在某个字符串里出现过②统计多个字符在某个字符串中出现的次数

可以考虑基于数组创建一个简单的哈希表。

相关题目见《剑指offer》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: