商业网站开发教程,东圃做网站的公司,wordpress joomla 菜单,东莞网站制作公司java左右括号 数据结构-栈栈的特点#xff1a;先进后出代码实现 最近看到有小伙伴去面试#xff0c;被人问起一道算法题#xff0c;题目内容大概是#xff1a;给定一个字符串#xff0c;如#xff1a;“[[]]{}”#xff0c;判断字符串是否为有效的括号。考查的是数据结构… java左右括号 数据结构-栈栈的特点先进后出代码实现 最近看到有小伙伴去面试被人问起一道算法题题目内容大概是给定一个字符串如“[[]]{}”判断字符串是否为有效的括号。考查的是数据结构下面用的是java的栈实现左右括号的校验。 数据结构-栈
栈的特点先进后出
代码实现
public static void main(String[] args) {input(([)]);input(}});input([[]]{});}private static void input(String str) {boolean valid valid(str);System.out.println(str : valid);}/*** 校验指定的字符串是否匹配** param str 校验的字符串* return true匹配false不匹配*/private static boolean valid(String str) {char[] chars str.toCharArray();StackCharacter charsStack new Stack();for (int i 0; i chars.length; i) {if (chars[i] ( || chars[i] [ || chars[i] {) {//1. 左括号则入栈charsStack.push(chars[i]);} else {//2. 右括号,则出栈比较if (charsStack.size() 0) {//2.1 字符串不为空但是栈无数据,即没有对应的左括号入栈则不匹配return false;}//2.2 出栈的数据是否成对括号char pop charsStack.pop();if (pop ( chars[i] ! )) {return false;} else if (pop [ chars[i] ! ]) {return false;} else if (pop { chars[i] ! }) {return false;}}}//3. 出栈后的栈为空则说明是成对出现则匹配return charsStack.isEmpty();}上述的代码仅供参考