'(' 与 ')'匹配问题

来源:互联网 发布:部落冲突女巫升级数据 编辑:程序博客网 时间:2024/06/07 06:53

'(' 与 ')'匹配问题:

import java.util.Scanner;import java.util.Stack;public class Main {public static void main(String[] args) {Stack<Character> stack = new Stack<Character>();Scanner read=new Scanner(System.in);String str=read.next();// 如果该String长度为奇数,不匹配if (str.length() % 2 == 1) {//System.out.println("No");stack = new Stack<Character>();for (int i = 0; i < str.length(); i++) {if (stack.isEmpty()) {stack.push(str.charAt(i)); // 当前栈是空的 存入当前位置的字符} else if ((stack.peek() == '(' && str.charAt(i) == ')')) {stack.pop(); // 满足上面的条件 表示相邻的两个字符是一对匹配的括号 进行出栈操作} else {stack.push(str.charAt(i));}}if (stack.isEmpty()) {//System.out.println("Yes");} else {stack.size();System.out.println(stack.size());}} else {stack = new Stack<Character>();for (int i = 0; i < str.length(); i++) {if (stack.isEmpty()) {stack.push(str.charAt(i)); // 当前栈是空的 存入当前位置的字符} else if ((stack.peek() == '(' && str.charAt(i) == ')')) {stack.pop(); // 满足上面的条件 表示相邻的两个字符是一对匹配的括号 进行出栈操作} else {stack.push(str.charAt(i));}}if (stack.isEmpty()) {//System.out.println("Yes");} else {stack.size();System.out.println(stack.size());}}}}


原创粉丝点击