一、知识点:
栈
二、文字分析:
- 创建一个空栈。
- 遍历输入字符串的每个字符:如果字符是左括号(‘(’, ‘{’, ‘[’)中的一个,将其压入栈中。如果字符是右括号(‘)’, ‘}’, ‘]’)中的一个,判断栈是否为空。如果栈为空,即没有左括号与之匹配,返回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();
}
}

京公网安备 11010502036488号