栈应用——分隔符匹配
来源:互联网 发布:我国导弹发展水平知乎 编辑:程序博客网 时间:2024/04/27 16:26
public class StackX { private int maxSize; private long[] stackArray; private int top; public StackX(int s){ maxSize=s; stackArray = new long[maxSize]; top=-1; } public void push(long j){ stackArray[++top]=j; } public long pop(){ return stackArray[top--]; } public long peek(){ return stackArray[top]; } public boolean isEmpty(){ return (top==-1); } public boolean isFull(){ return (top==maxSize-1); }}
public class BracketChecker {//分隔符匹配 private String input; public BracketChecker(String in){ input=in; } public void check(){ int stackSize = input.length(); StackX theStack = new StackX(stackSize); for(int j=0;j<input.length();j++){ char ch = input.charAt(j); switch(ch){ case '{': case '[': case '(': theStack.push(ch); break; case '}': case ']': case ')': if(!theStack.isEmpty()){ char chx = (char) theStack.pop(); if((ch=='}'&&chx!='{')||(ch==']'&&chx!='[')||(ch==')'&&chx!='(')){ System.out.println("Error: "+ch+" at "+j); } else if((ch=='}'&&chx=='{')||(ch==']'&&chx=='[')||(ch==')'&&chx=='(')){ System.out.println("right!!!"); } } else System.out.println("Error: "+ch+" at "+j); break; default: break; } } if(!theStack.isEmpty()){ System.out.println("Error:missing right delimiter"); } }}
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class BracketsApp { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String input; while(true){ System.out.flush(); input = getString(); if(input.equals("")){ break; } BracketChecker theChecker = new BracketChecker(input); theChecker.check(); } } public static String getString() throws IOException{ InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); String s = br.readLine(); return s; }}
1 0
- 栈应用——分隔符匹配
- 栈应用——分隔符匹配
- 数据结构Java实现——①栈-->栈的应用二、分隔符匹配
- 栈的应用:分隔符匹配问题-编写判断java语句中分隔符是否匹配的程序
- 分隔符匹配
- 分隔符匹配
- 正则表达式—获取、分隔、匹配
- (C++) 分隔符匹配
- C#用栈实现分隔符匹配问题
- Java栈实现判断分隔符是否匹配
- TStringList的分隔符应用
- 栈机制应用——括号匹配[()]
- 栈的简单应用—-符号匹配
- 栈操作和应用—括号匹配
- java中栈的应用-判断分隔符是否合理
- 【第4节】Java代码实现栈--小例子--分隔符匹配
- 《Java数据结构与算法》笔记-CH4-3用栈实现分隔符匹配
- 用数组模拟栈结构,实现分隔符"{}"、"()"、"[]"的左右匹配检查
- 【opencv】鱼眼图像畸变校正——透视变换
- 空间金字塔方法表示图像
- NameNode启动过程详细剖析 NameNode中几个关键的数据结构 FSImage
- 面试题总结 —— JAVA高级工程师
- 【VS开发】QueryPerformanceFrequency与QueryPerformanceCounter的使用
- 栈应用——分隔符匹配
- JAVA 异常处理机制
- android:exported 属性详解
- C,C++宏中#与##的讲解
- iOS开发-清理缓存功能的实现
- javascript中的事件捕获机制,深入理解并区别IE和DOM中的事件模型
- Product of Array Except Self
- create ASSEMBLY MySync FROM 'D:\MySync.dll'
- spring线程池ThreadPoolExecutor配置并且得到任务执行的结果