在一个字符串中找到第一个只出现一次的字符

2014-11-24 02:07:53 · 作者: · 浏览: 1

题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
分析:这道题是2006年google的一道笔试题。

[cpp] /*
Name:
Copyright:
Author:
Date: 15-06-11 12:05
Description: :在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
*/
#include
#include
using namespace std;


int main()
{

char s[]="abbadsSsfayjuioyopgaAWDDERRGTHRccdeff";
int a[150];
memset(a,0,sizeof(int)*150);
const int len=strlen(s);
int t;
for(int i=0;i {
a[s[i]]++;
}
for(int i=0;i {
if(a[s[i]]==1)
{
cout< break;
}
}
system("pause");
return 0;
}

/*
Name:
Copyright:
Author:
Date: 15-06-11 12:05
Description: :在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
*/
#include
#include
using namespace std;


int main()
{

char s[]="abbadsSsfayjuioyopgaAWDDERRGTHRccdeff";
int a[150];
memset(a,0,sizeof(int)*150);
const int len=strlen(s);
int t;
for(int i=0;i {
a[s[i]]++;
}
for(int i=0;i {
if(a[s[i]]==1)
{
cout< break;
}
}
system("pause");
return 0;
}

分析:算法的复杂度为O(n)。开辟的整数数组大小为150,利用字符的ASCII码做索引。