/**
* 判断括号是否匹配
* 例如:{()[]} :匹配
* {{[()}} :不匹配
**/
private static boolean judgeBracket(String s) {
if (s.length() == 0) return false;
Stack<Character> stack = new Stack();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '{' || c == '(' || c == '[') {
stack.push(c);
}
if (c == '}') {
return !stack.isEmpty() && (stack.pop() == '{');
}
if (c == ')') {
return !stack.isEmpty() && (stack.pop() == '(');
}
if (c == ']') {
return !stack.isEmpty() && (stack.pop() == '[');
}
}
return stack.isEmpty();
}
本文实现目标: 基于栈stack数据结构判断字符串中的括号是否匹配,字符串中仅包含如下字符:( ) [ ] { }。 相关知识 为了完成任务,你需要掌握:1.如何创建一个栈,2.入栈、出栈操作。 创建栈、入栈和出栈操作请参考顺序存储的栈——分析与实现。 编程要求 在Bracket_Match中,利用栈stack判断括号是否匹配, 若匹配输出YES,否则输出NO,末尾换行。 ...
思路: 将给定的字符串,变为字符类型的数组,使用string的toCharArray() 判断字符是否为括号,这里创建一个函数来判断 使用栈的结构来匹配括号,从而判断括号是否匹配:` 创建一个栈数组,类型为char,依次判断字符是否为括号,如果为左括号,直接加入栈中 当碰到右括号的时候,先判断这个时候栈中有没有元素,如果没有,那么右括号过多,如果有和栈顶元素比较,如果配对,那么弹出栈顶元素,继续往...
题目: Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid. The b...
栈的应用(001)字符串中括号的匹配 伪代码如下(写代码前的思路) 源代码(具体实现,代码为转载,自己加了一点注释) 伪代码如下(写代码前的思路) 源代码(具体实现,代码为转载,自己加了一点注释) 原文章链接...
题目:String s = “…(…[…]…{…}…)…(…)…”; 判断括号是否匹配 `...
从键盘输入的是字符,不要有空格,要不 就判断错了(因为空格也是字符) ...
上一篇博客定义了栈的类,并实现了简单的“+-*/”四则运算,今天再利用栈结构实现一个简单的应用:判断字符串中的左右括号是否匹配的问题。 题目描述: 给定一个字符串,其中包括了左右括号以及其他字符,编写程序判断其中的左右括号是否合法。 假设只有四种括号: 左括号:['<', '(', '[','{']; 右括号:['>', ')', ']','}']; 解法: 定...
最近在做 leetCode 上的题目,记录下,方便下次查看回忆; 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 ...
...
time limit per test4 seconds memory limit per test256 megabytes inputstandard input outputstandard output Anton is playing a very interesting computer game, but now he is stuck at one of the levels. T...