/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return bool布尔型 */ char check(char pre) { if (pre == ')') return '('; else if (pre == ']') return '['; else if (pre == '}') return '{'; return 0; } bool isValid(char* s ) { // write code here if (strlen(s) % 2 != 0) return 0; char* stack = (char*)malloc(sizeof(char) * strlen(s)); int top = 0; int i = 0; for (i = 0; i < strlen(s); i++) { if (s[i] == '(' || s[i] == '[' || s[i] == '{') { stack[top] = s[i]; top++; } else if (s[i] == ')' || s[i] == ']' || s[i] == '}') { top--; if (top < 0) { return 0; } if (stack[top] == check(s[i])) { stack[top] = '\0'; } else { return 0; } } } if (strlen(stack) != 0) { return 0; } else { return 1; } }