给定一个字符串A和其长度n,请返回一个bool值代表它是否为一个合法的括号串(只能由括号组成)。
测试样例:
."(()())",6
返回:true
测试样例:
“()a()()”,7
返回:false
测试样例:
“()(()()”,7
返回:false
package java0613;
import java.util.Stack;
/*
* 1.碰到")"开始弹出栈顶的"(",如果此时栈为空,则返回false
* 2.碰到其他内容直接返回false
* 3.字符串结尾时,栈非空返回false
*/
public class Parenthesis {
public boolean chkParenthesis(String A, int n) {
Stack<Character> stack = new Stack<>();
if (A.length() != n) {
return false;
}
if (A != null) {
for (int i = 0; i < n; i++) {
if ('(' == A.charAt(i)) {
stack.push(A.charAt(i));
continue;
}
if (')' == A.charAt(i) && !stack.isEmpty()) {
stack.pop();
continue;
}
if ((')' != A.charAt(i)) || '(' != A.charAt(i)) {
return false;
}
}
if (!stack.isEmpty()) {
return false;
} else {
return true;
}
}
return false;
}
}