您的位置:首页 > 编程语言

【编程题目】在一个字符串中找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b。

2014-08-06 15:49 218 查看
第 17 题(字符串):
题目:在一个字符串中找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b。

思路:此题非常容易。 最开始是想开辟一块空间存储每个字符出现的次数。 但转念一想,似乎没有必要。 对每一个字符,都依次和后面的比较,若出现了两次,则检查下一个字符,遇到只出现一次的,直接输出就好了。

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

#include <stdio.h>

char findfirstone(char * in)
{
for(int i = 0; in[i] != '\0'; i++)
{
int numofnow = 1;
char now = in[i];
for(int j = 0; in[j] != '\0'; j++) //这里必须从零开始 或者记录哪些数字曾经被访问过
{
if(j == i)
{
continue;
}
if(now == in[j])
{
numofnow++;
break;
}
}
if(numofnow == 1)
{
printf("%c", now);
return now;
}
}

printf("no only one alphabet!");
return '\0';
}

int main()
{
char * a = "aaaaaaaaab";
findfirstone(a);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐