题目描述:
对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串。
给定一个字符串A和它的长度n,请返回一个bool值代表它是否为一个合法的括号串。
题目解析:
当我们看到这种括号匹配的问题,第一反应则是使用栈,使用这个思路,本题就会简单很多。
解题思路:
1.先判断栈是否为空,为空则直接返回false;
2.再判断输入的字符串,如果为“(‘则直接入栈;
3.这个时候我们就要判断括号是否合法了,如果碰到” )“ ,则直接弹出栈顶元素”( “,如果此时栈为空,则直接返回false;
4.碰到除” )“以外的内容则直接返回false;
5.字符串结尾时,栈非空,则返回false;
代码如下:
import java.util.Stack;
/**
* 合法括号序列判断
*/
public class Work2 {
public boolean chkParenthesis(String A, int n) {
Stack<Character> stack = new Stack<Character>();
if (A == null || A.length() != n){
return fal