一、知识点:
栈
二、文字分析:
- 创建一个空栈。
- 遍历输入字符串的每个字符:如果字符是左括号(‘(’, ‘{’, ‘[’)中的一个,将其压入栈中。如果字符是右括号(‘)’, ‘}’, ‘]’)中的一个,判断栈是否为空。如果栈为空,即没有左括号与之匹配,返回false。否则,弹出栈顶
的元素,并将其与当前遍历的右括号进行匹配。如果匹配成功,则继续遍历下一个字符;如果匹配失败,则返回false。
3. 循环结束后,判断栈是否为空。如果栈为空,说明所有的括号都已经匹配完,返回true;如果栈不为空,说明还有剩余的左括号没有匹配到相应的右括号,返回false。
三、编程语言:
java
四、正确代码:
import java.util.*; public class Solution { public boolean is_valid_cow_communication(String s) { Stack<Character> stack = new Stack<>(); for (char ch : s.toCharArray()) { if (ch == '(' || ch == '{' || ch == '[') { stack.push(ch); } else if (ch == ')' || ch == '}' || ch == ']') { if (stack.isEmpty()) { return false; } char top = stack.pop(); if ((ch == ')' && top != '(') || (ch == '}' && top != '{') || (ch == ']' && top != '[')) { return false; } } } return stack.isEmpty(); } }