文章

27

粉丝

492

获赞

10

访问

269.9k

头像
java实现栈的应用
P1501 西北工业大学2015机试题
发布于2020年4月18日 12:40
阅读数 10.1k

import java.util.Scanner;
import java.util.Stack;

/**1.循环扫描字符串中的字符
 * 2.遇到左括号压入栈
 * 3.遇到右括号时,需要弹出栈里的元素,有两种情况不符合,一是栈为空,二是出栈的元素与当前扫描的括号不匹配.
 * 4.当所有的字符扫描结束,需要判断栈是否为空,判断是不是匹配完了。
 * @author 回到原点
 *
 */
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
			String str = sc.nextLine();
			char[] ch = str.toCharArray();
			Stack<Character> stack = new Stack<>();
			for (int i = 0; i < ch.length; i++) {//扫描字符
				if (ch[i] == ')' || ch[i] == ']') { //右括号分两种情况
					if (stack.isEmpty()) { 
						System.out.println("NO");
						return;
					} else if (!stack.isEmpty()) {
						char temp = stack.pop();
						if ((ch[i] == ']' && temp == '(') || (ch[i] == ')' && temp == '[')) {
							System.out.println("NO");
							return;
						}
					}

				} else if (ch[i] == '[' || ch[i] == '(') { //左括号入栈
					stack.push(ch[i]); 
...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发