括号的匹配问题,主要用到栈的基础知识
这个问题主要是用到栈的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();}
}
在这个代码中主要用到入栈,出栈,还用到了迭代,虽然我也不是很明白,但是用就对了。