#include <stdio.h>
#include<string.h>
#include<malloc.h>

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


/*
 思路:其实我一开始想用双指针,我想用一个slow和fast两个指针至于开始,
 让slow固定 fast遍历整个字符串,如果fast有和slow相同的就退到开始重新找,
 slow++指向下一个字符固定,fast从第二个位置开始继续遍历整个字符串,
 直到找到没有与slow重复的字符,那么slow就是第一个只出现一次的字符
 但是想法是美好的没实现出来,技术太差了唉
 有大佬会么,我也不知道想的对不对。。。
 so我又想到了第二个方法
我在开辟一个整型数组用来存放每个字符出现的次数,
两次循环遍历字符串,如果有相同的就 ++,最后只有1个的就是
*/
int main() {
    char* str = (char*)malloc(1000 * sizeof(char));
    int a[1000] = {0}; //存放每个字符出现的次数
    scanf("%s", str);
    int i, j;
    int  len = strlen(str);
    for (i = 0; i < len; i++) {
        for (j = 0; j < len; j++) {
            if (str[i] == str[j])
                a[i]++;
        }
        if (a[i] == 1) {
            printf("%c\n", str[i]);
             return 0;       //注意这边要return 0;“return 0作用:是正常退出,表示这个函数已经被正常地执行完毕以跳出该程序。 不然就输出下面的-1;
        } 
    }
    printf("%d\n", -1);
    return 0;
    free(str);

}

思路:其实我一开始想用双指针,我想用一个slow和fast两个指针至于开始,

让slow固定 fast遍历整个字符串,如果fast有和slow相同的就退到开始重新找,

slow++指向下一个字符固定,fast从第二个位置开始继续遍历整个字符串,

直到找到没有与slow重复的字符,那么slow就是第一个只出现一次的字符

但是想法是美好的没实现出来,技术太差了唉

有大佬会么,我也不知道想的对不对。。。

so我又想到了第二个方法

我在开辟一个整型数组用来存放每个字符出现的次数,

两次循环遍历字符串,如果有相同的就 ++,最后只有1个的就是