【C语言】找出一个字符串中第一个只出现一次的字符
程序员文章站
2024-03-15 16:15:36
...
题目描述:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 分析:这道题是2006年google的一道笔试题。
方法一:
简单粗暴的遍历完成,只适用于字符串较小时使用,算法的时间复杂度为O(n2),因此并不推荐使用;
代码:
#include<stdio.h>
#include<Windows.h>
#include<math.h>
#define MAX 30
int FindFirstNRepeatChar(char arr[],const int len){
int i,j,k = 0;
int KeyArr[MAX];
//遍历字符串,把每个字符出现的次数存入KeyArr[]相应的位置里
for(i=0;i<len;i++){
k = 0;
for(j=0;j<len;j++){
if(arr[i] == arr[j])
++k;
KeyArr[i] = k;
}
}
//遍历字符串,查找KeyArr[]里第一个为0的数据,并返回该下标
for(i=0;i<len;i++){
if(KeyArr[i] == 1)
return i;
}
return 0;
}
int main()
{
char arr[] = "abaccdeff";
int k;
k = FindFirstNRepeatChar(arr,sizeof(arr)/sizeof(arr[0]));
if(k != 0)
printf("%c\n",arr[k]);
else
printf("没有找到\n");
system("pause");
return 0;
}
代码运行结果:
上一篇: Java 帕斯卡三角/杨辉三角
下一篇: 笔试遇到的问题
推荐阅读
-
【C语言】找出一个字符串中第一个只出现一次的字符
-
java实现输出字符串中第一个出现不重复的字符详解
-
数组中找出一个只出现了一次的数(其他数成对出现)
-
java实现输出字符串中第一个出现不重复的字符详解
-
c语言 一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现。
-
【c语言】一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现。
-
C语言:一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现。
-
C语言编程实现之一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字
-
在字符串中找出第一个只出现一次的字符。经典C语言例题
-
C#找出字符串中第一个字母并大写的方法