括号匹配问题:
import java.util.Stack;
public class SymbolMatch {
public boolean check(String str) {
Stack<Character> s = new Stack<Character>();
boolean match = true;
for (int i = 0; i < str.length() && match; i++) {
try {
switch (str.charAt(i)) {
case '(' :
case '[' :
case '{' : s.push(str.charAt(i)); break;
case ')' : if (s.pop() != '(') match = false; break;
case ']' : if (s.pop() != '[') match = false; break;
case '}' : if (s.pop() != '{') match = false; break;
}
} catch (Exception e) {
match = false;
}
}
if (match && !s.isEmpty())
match = false;
return match;
}
public static void main(String[] args) {
SymbolMatch sm = new SymbolMatch();
System.out.println("(: " + sm.check("("));
System.out.println("a(bc[d])e{fd}: " + sm.check("a(bc[d])e{fd}"));
System.out.println("a(bc]d: " + sm.check("a(bc]d"));
System.out.println("a(b(c)d: " + sm.check("a(b(c)d"));
System.out.println("a(b)c)d: " + sm.check("a(b)c)d"));
}
}
分享到:
相关推荐
c++括号匹配问题c++括号匹配问题c++括号匹配问题c++括号匹配问题c++括号匹配问题c++括号匹配问题c++括号匹配问题c++括号匹配问题
利用栈完成括号匹配问题 从一个文本中读取文件 然后在程序中进行括号的匹配
用栈实现括号匹配。而且使得操作尽可能简单,所以就之用了基本的进,出栈的操作。
C语言括号匹配问题解决方法,给定一个输入的字符串,包含括号(和),能够找出(和)的个数,并指出(或者)不正确的位置。
c++使用堆栈实现括号匹配问题
输入N对括号 检查是否匹配, 如果不匹配则给出不匹配的提示
这是典型的动态规划求解最长括号匹配问题。
《数据结构》中的括号匹配问题的C#语言代码实现,供参考。
利用简单的栈操作实现的括号匹配问题,比较简单
括号匹配
基于数据结构的括号匹配问题,有源代码,文档,执行文件等
NOI/NOIP “栈”这种数据结构中一种典型题目 括号匹配 的ppt讲解
假设在表达式中允许有三种括号:圆括号、方括号...要求设计测试数据,如果在表达式中括号使用正确,输出结果为“此表达式中括号匹配合法”,否则输出结果为“此表达式中括号匹配不合法”,#为表达式的起始和结束标志。
给定一个字符串,其中的字符只包含三种...括号匹配要求括号必须以正确的顺序配对,如 “{ [ ] ( ) }” 或 “[ ( { } [ ] ) ]” 等为正确的格式,而 “[ ( ] )” 或 “{ [ ( ) }” 或 “( { } ] )” 均为不正确的格式。
判断一个有左括号和右括号、以及其他ASCII字符组成的表达式是合法。...如果有*,则*可作为0个或者1个右括号,如果匹配则输出ok,不匹配则输出不匹配字符所在字符串中的具体位置。资源中包含详细源码+测试+visio流程图
【数据结构】括号匹配问题