本文主要是介绍Java-检查括号合法性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、检查括号的合法性
import java.util.Stack;/*** 检查括号是否匹配*/
public class StackQueueInterview {public static boolean isVaild(String str){//先判断字符串是否为空if(str==null){return true;}//是左括号,入栈//是右括号,取栈顶元素然后检查是否匹配//匹配的话就继续扫描,三种情况都不匹配的话就返回false就可以//当遍历完之后,看栈是否为空,空的话就返回trueStack<Character> stack=new Stack<>();for(int i=0;i<str.length();i++){//取到字符char c=str.charAt(i);if(c=='('||c=='{'||c=='['){//入栈stack.push(c);continue;}//如果不是左括号//先判断栈是否为空if(stack.isEmpty()){return false;}//是右括号//栈顶元素char top=stack.pop();if(top=='('&&c==')'){continue;}if(top=='['&&c==']'){continue;}if(top=='{'&&c=='}'){continue;}//走到这里说明栈顶元素和该元素不匹配return false;}//遍历完成if(stack.isEmpty()){return true;}return false;}public static void main(String[] args) {String str="({[]})";System.out.println(isVaild(str));}
}
这篇关于Java-检查括号合法性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!