关注
import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args ) { Scanner sr =new Scanner(System.in); String str=sr.next(); sr.close(); StringBuffer sb=new StringBuffer(openString(str)); System.out.println(sb.reverse()); } public static String openString(String str) { if(!str.matches(".*\\d+.*")) { return str; } Stack stack=new Stack(); int left=0; int right=0; //左右指针分别指向每次处理最里面一层的字符串 for(int i=0;i<str.length();i++) { char c=str.charAt(i); if(!(c==')'||c==']'||c=='}')) { stack.push(c); } else { right=i; break; } } //遍历先找到最前面的")"、"]"、"}" ,在此之前全部存栈 left=right; char sc=(char) stack.pop(); left--; String s=""; while(!(sc=='('||sc=='['||sc=='{')) //弹栈找到最近的"("、"["、"{",在找到之前都是叠加的,全部存储 { s=sc+s; sc=(char)stack.pop(); left--; } sc=(char) stack.pop(); int count=(int)sc-(int)'0'; //取出数字,叠加展开 left--; String ss=""; while(count>0) { ss+=s; count--; } str=str.substring(0,left)+ss+str.substring(right+1,str.length()); //替换原数组中的处理部分,递归。 return openString(str); } }
查看原帖
点赞 评论
相关推荐
04-19 10:50
门头沟学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届春招投递记录 #
31742次浏览 238人参与
# 妈妈治愈了你哪些脆皮时刻 #
47369次浏览 358人参与
# 27届实习投递记录 #
112762次浏览 1235人参与
# 你投了多少家公司?进展是___ #
248018次浏览 1444人参与
# 我的求职总结 #
511324次浏览 7077人参与
# 我的工作日记 #
207696次浏览 1828人参与
# 大学生该如何认清当下的就业环境? #
178597次浏览 943人参与
# AI面会问哪些问题? #
133844次浏览 3399人参与
# 要毕业了,再不说就来不及了 #
5791次浏览 104人参与
# 我与AI的日常 #
10536次浏览 186人参与
# 如果公司降薪,你会跳槽吗? #
168720次浏览 972人参与
# 27届求职交流 #
499038次浏览 4655人参与
# 今年秋招还有金九银十吗 #
85036次浏览 518人参与
# 25届非技术实习投递记录 #
159335次浏览 1027人参与
# 应届生应该先就业还是先择业 #
202229次浏览 944人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
168635次浏览 916人参与
# 你以为的实习VS真实的实习 #
144134次浏览 760人参与
# 你觉得什么岗位会被AI替代 #
65315次浏览 386人参与
# 你的秋招进行到哪一步了 #
2802423次浏览 23414人参与
# 腾讯工作体验 #
646660次浏览 3915人参与
查看1道真题和解析