bool isValid(char* s) {
    int len = strlen(s);
    char stack[len]; // 使用字符数组模拟栈
    int top = -1; // 栈顶指针

    for (int i = 0; i < len; i++) {
        if (s[i] == '(' || s[i] == '[' || s[i] == '{') {
            stack[++top] = s[i]; // 左括号入栈
        } else if (s[i] == ')' && top >= 0 && stack[top] == '(') {
            top--; // 匹配右括号,栈顶左括号出栈
        } else if (s[i] == ']' && top >= 0 && stack[top] == '[') {
            top--; // 匹配右括号,栈顶左括号出栈
        } else if (s[i] == '}' && top >= 0 && stack[top] == '{') {
            top--; // 匹配右括号,栈顶左括号出栈
        } else {
            return false; // 其他情况不匹配
        }
    }

    return top == -1; // 栈为空说明所有括号都匹配
}