赞
踩
给定一个字符串,字符串包含数字、大小写字母以及括号(包括大括号、中括号和小括号),括号可以嵌套,即括号里面可以出现数字和括号。
按照如下的规则对字符串进行展开,不需要考虑括号成对不匹配问题,用例保证括号匹配,同时用例保证每个数字后面都有括号,不用考虑数字后面没有括号的这种情况,即2a2(b)这种情况不用考虑。
1)数字表示括号里的字符串重复的次数,展开后的字符串不包含括号。
2)将字符串进行逆序展开。
输出最终展开的字符串。
输入一个长度小于100的字符串。
输出展开后的字符串。
输入
abc3(A)
输出
AAAcba
import java.util.*; public class Solution { public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = in.next(); System.out.println(reverseInStack(str)); } public static String reverseInStack(String str) { Stack<Character> stack = new Stack<>(); ArrayList<Character> list = new ArrayList<>(); //把大括号和中括号全部替换为小括号; str = str.replace('{','(').replace('}', ')'); str = str.replace('[','(').replace(']', ')'); char[] chars = str.toCharArray(); int i=0; while(true) { //入栈直到遇到第一个右括号; while(i < chars.length && chars[i]!=')') { stack.push(chars[i]); i++; } //出栈直到遇到最近的左括号,并依次倒入表中; while(stack.peek()!='(') { list.add(stack.pop()); if(stack.empty()) bre
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。