c语言70,前三个测试点wa

B2110 找第一个只出现一次的字符

cZanY @ 2024-12-18 10:44:53

c语言,70分,前三个测试点wa

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

int main() {
    char str[1100];
    scanf("%s", str);

    // 默认 arr = 1
    int arr[strlen(str)];
    for (int i = 0; i < strlen(str); i++) {
        arr[i] = 1;
    }

    for (int i = 0;i < strlen(str) - 1;i++) {

        // 如果arr没有被记为0,那就继续判断
        if (arr[i] != 0) {
            for (int j = i + 1;j < strlen(str);j++) {
                // a[i]后面只要重复就把arr记为0
                if (str[i] == str[j]) {
                    arr[i] = 0;
                    arr[j] = 0;
                    break;
                }
            }
        }
    }

    // 如果找到了符合条件的就found = 1
    int found = 0;
    for (int i = 0;i < strlen(str)-1;i++) {
        if (arr[i] == 1) {
            printf("%c", str[i]);
            found = 1;
            break;
        }
    }
    // 什么都没找到就输出no
    if (found == 0) {
        printf("no");
    }
    return 0;
}

|