本文共 1161 字,大约阅读时间需要 3 分钟。
- 如果字符串长度是奇数,就不是合法序列,直接返回false
- 字符串长度是偶数,遍历字符串进行匹配 1. 如果是左括号,直接入栈。 2. 如果是右括号,判断栈是否为空, 1. 栈为空也直接返回false; 2. 栈不为空,弹出栈顶元素是否是左括号,是就匹配,删除栈顶元素。 4. 如果字符既不是左括号也不是右括号,返回false。
import java.util.*;public class Parenthesis { public boolean chkParenthesis(String A, int n) { // write code here /* 1. 如果字符串长度是奇数,就不是合法序列,直接返回false 2.字符串长度是偶数,遍历字符串进行匹配 1 如果是左括号,直接入栈 2. 如果是右括号,判断栈是否为空,为空也直接返回false;栈不为空,弹出栈顶元素是否是左括号,是就匹配 3. 如果字符既不是左括号也不是右括号,返回false */ if(A.length()==0){ return false; } if(A.length()%2==1){ return false; } Dequestack=new LinkedList<>(); for(char c:A.toCharArray()){ if(c=='('){ stack.push(c); }else if(c==')'){ if(stack.isEmpty()){ return false; } if(stack.peek()=='('){ stack.pop(); } }else{ return false; } } return stack.isEmpty(); }}
转载地址:http://dffki.baihongyu.com/