题解 | #找出字符串中第一个只出现一次的字符#
找出字符串中第一个只出现一次的字符
https://www.nowcoder.com/practice/e896d0f82f1246a3aa7b232ce38029d4
#include <stdio.h>
#include <string.h>
typedef struct {
int count;
int index;
}hash;
int main() {
hash hash[26];
for(int i=0;i<26;i++)
{
hash[i].count = 0;
hash[i].index = 1000;
}
char str[1000];
while(~scanf("%s",str)){
int n = strlen(str);
for(int i = 0;i<n;i++)
{
hash[str[i]-'a'].count++;
hash[str[i]-'a'].index = hash[str[i]-'a'].index < i?hash[str[i]-'a'].index:i;
}
int min = 1000;
int flag = 0;
for(int i =0;i<26;i++)
{
if(hash[i].count == 1)
{
flag = 1;
min = min>hash[i].index?hash[i].index:min;
}
}
if(flag)
printf("%c",str[min]);
else{
printf("-1");
}
}
}
查看15道真题和解析
科大讯飞公司氛围 477人发布
