描述
找出字符串中第一个只出现一次的字符
数据范围:输入的字符串长度满足 1≤n≤1000
输入描述:
输入一个非空字符串
输出描述:
输出第一个只出现一次的字符,如果不存在输出-1
示例1
输入:
asdfasdfo
输出:
o
#include <stdio.h>
#include<string.h>
int main() {
char str[1000];
// 1.输入
gets(str);
// 2.统计字符串中出现了哪些字符
/*
ASCII码共有128种字符,采用哈希
*/
int chara[128]={0}; //128个字符
// 初始化,128个字符出现次数初始均为0
for(int i=0;i<128;i++)
{
chara[i]=0;
}
// 统计
for(int i=0;i<strlen(str);i++)
{
int t=str[i]-'0'; //对应下标
chara[t]++;
}
// 3.输出
// 找到第一个出现次数为1的字符并输出
int flag=0; //用于标志有没有只出现1次的字符,1表示有,0表示无
for(int i=0;i<strlen(str);i++)
{
int t=str[i]-'0';
if(chara[t]==1)
{
flag=1;
printf("%c",str[i]);
break;
}
}
if(flag==0) //没有只出现1次的字符
printf("-1");
return 0;
}