题解 | #牛群的秘密通信#
牛群的秘密通信
https://www.nowcoder.com/practice/f0047999594d4cd39f85d7347c6941af
题目考察的知识点 : 栈的使用
题目解答方法的文字分析:
当为左括号时,直接压入栈中即可.
当为右括号时,需进行判断:
当栈为空时,返回false
当栈顶部元素匹配时,将栈顶元素弹出
若不匹配直接返回false
最后判断栈内是否有左括号剩余,有则返回false
本题解析所用的编程语言: java
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return bool布尔型
*/
public boolean is_valid_cow_communication (String s) {
// write code here
Stack<Character> stack = new Stack<>();
for(char r:s.toCharArray()){
if(r == '{' || r == '[' || r == '('){
stack.add(r);
}else if(stack.isEmpty()){
return false;
}else if(r == '}' && stack.peek() == '{'){
stack.pop();
}else if(r == ']' && stack.peek() == '['){
stack.pop();
}else if(r == ')' && stack.peek() == '('){
stack.pop();
}else {
return false;
}
}
if(!stack.isEmpty()) return false;
return true;
}
}