题解 | #找出字符串中第一个只出现一次的字符#

找出字符串中第一个只出现一次的字符

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");
        }
    }
}

全部评论

相关推荐

代码飞升_不回私信人...:别这样贬低自己,降低预期,放平心态,跟昨天的自己比。做好自己,反而会效率更高心态更好,加油兄弟
点赞 评论 收藏
分享
12-15 14:16
门头沟学院 Java
回家当保安:发offer的时候会背调学信网,最好不要这样。 “27届 ”和“28届以下 ”公司招聘的预期是不一样的。
实习简历求拷打
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务