括号匹配问题
括号的匹配问题,主要用到栈的基础知识
这个问题主要是用到栈的push()方法和pop()方法。
代码如下:
package day04;import java.util.Scanner;import java.util.Stack;//括号匹配问public class Prog20 {public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入字符串"); String string=sc.next();Prog20 pgProg20=new Prog20();if(pgProg20.isVaild(string))System.out.println("你输入的字符串括号匹配");else {System.out.println("你输入的字符串括号不匹配");}}//主要是考察到栈的基本知识public boolean isVaild(String s) {Stack<Character> stack=new Stack<Character>();for(char c:s.toCharArray()) { //这里用到了迭代if(c=='(') { stack.push(')');}else if(c=='[') {stack.push(']');}else if(c=='{') {stack.push('}');}else if(stack.isEmpty()||c!=stack.pop())return false;}return stack.isEmpty();}}
在这个代码中主要用到入栈,出栈,还用到了迭代,虽然我也不是很明白,但是用就对了。