Balancing Symbols

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

int main() {
    char expr[51];
    int round = 0, square = 0, curly = 0;
    int badRound = 0, badSquare = 0, badCurly = 0;

    fgets(expr, sizeof(expr), stdin);

    for (int i = 0; expr[i] != '\0'; i++) {
        if (expr[i] == '(') round++;
        else if (expr[i] == ')') {
            round--;
            if (round < 0) badRound = 1;
        }
        else if (expr[i] == '[') square++;
        else if (expr[i] == ']') {
            square--;
            if (square < 0) badSquare = 1;
        }
        else if (expr[i] == '{') curly++;
        else if (expr[i] == '}') {
            curly--;
            if (curly < 0) badCurly = 1;
        }
    }

    if (round != 0) badRound = 1;
    if (square != 0) badSquare = 1;
    if (curly != 0) badCurly = 1;

    if (!badRound && !badSquare && !badCurly) {
        printf("0");
    } else {
        if (badRound) printf("1,");
        if (badSquare) printf("2,");
        if (badCurly) printf("3,");
    }

    return 0;
}

 

posted @ 2025-12-24 10:00  我不是青山  阅读(2)  评论(0)    收藏  举报