第 17 题(字符串):
题目:在一个字符串中找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b。
思路:此题非常容易。 最开始是想开辟一块空间存储每个字符出现的次数。 但转念一想,似乎没有必要。 对每一个字符,都依次和后面的比较,若出现了两次,则检查下一个字符,遇到只出现一次的,直接输出就好了。
/*
第 17 题(字符串):
题目:在一个字符串中找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b。
分析:这道题是 2006 年 google 的一道笔试题。
*/ #include <stdio.h> char findfirstone(char * in)
{
for(int i = ; in[i] != '\0'; i++)
{
int numofnow = ;
char now = in[i];
for(int j = ; in[j] != '\0'; j++) //这里必须从零开始 或者记录哪些数字曾经被访问过
{
if(j == i)
{
continue;
}
if(now == in[j])
{
numofnow++;
break;
}
}
if(numofnow == )
{
printf("%c", now);
return now;
}
} printf("no only one alphabet!");
return '\0';
} int main()
{
char * a = "aaaaaaaaab";
findfirstone(a);
return ;
}