合法括号判断
1.题目链接
2.题目描述
给定一个字符串A和其长度n,请返回一个bool值代表它是否为一个合法的括号串(只能由括号组成)。
3.测试用例
测试样例1
输入:
"(()())",6
输出:
true
测试样例2
输入:
"()a()()",7
输出:
false
测试样例3
输入:
"()((",4
输出:
false
4.运行代码
import java.util.*;
public class Parenthesis {
public boolean chkParenthesis(String A, int n) {
//如果输进来的个数是奇数,则一定不匹配,直接返回false
if(n%2!=0){
return false;
}
//遍历字符串,如果是左括号,就入栈
Stack<Character> st = new Stack<>();
for(char ch:A.toCharArray()){
if(ch=='('){
st.push(ch);
}else if(ch==')'){
if(st.isEmpty()){
return false;
}else if(st.peek()=='('){
st.pop();
}else{
return false;
}
}else{
return false;
}
}
return st.isEmpty();
}
}