在线编译器 C

#include <stdio.h> int is_correct_brackets(char s[]) { int balance = 0; for (int i = 0; s[i] != '.' && s[i] != '\0'; i++) { if (s[i] == '(') { balance++; } else if (s[i] == ')') { balance--; } if (balance < 0) { return 0; } } if (balance == 0) { return 1; } else { return 0; } }
这段代码定义了一个函数 `is_correct_brackets`,用于检查字符串中括号是否匹配。它遍历字符串直到遇到点号 `.` 或字符串结束符 `\0`,用 `balance` 变量记录当前未匹配的左括号数量。遇到左括号加1,右括号减1,如果过程中 `balance` 变为负数则立即返回0(表示不匹配)。最后检查 `balance` 是否为0,是则返回1,否则返回0。

- 注意代码中循环条件是 `s[i] != '.' && s[i] != '\0'`,这意味着字符串遇到点号就会停止检查。如果题目要求检查整个字符串直到结束符,这个点号条件可能不符合要求。请确认题目是否真的需要用点号作为结束标志。
- 函数没有处理其他字符(如空格、字母等),但这对括号匹配检查没有影响,因为只关心括号。不过如果字符串中包含其他字符,它们会被跳过,这通常是正确的行为。