关注
`` static String resolve(String expr) {
Stack stack1 = new Stack();
// 用来储存 右括号前的字符串长度 保证只反转括号内的内容
Stack<Integer> stack2 = new Stack<>();
StringBuilder res = new StringBuilder();
Map<Character, Character> stock = new HashMap<>();
stock.put(')', '(');
for (int i = 0; i < expr.length(); i++){
// 右括号入栈1
if (expr.charAt(i)== '('){
// 右括号入栈后 要先统计一下之前的字符串的长度 保证只反转括号内的字符
stack1.push(expr.charAt(i));
// 之所以使用栈的形式存储 因为也是先进后出的特点
stack2.push(res.toString().length());
}// 当为左括号时
else if(expr.charAt(i) == ')'){
// 先看栈1是否为空 如果栈1为空的话 返回空字符串 或者栈顶的括号不匹配
if (stack1.empty() || stack1.peek() != stock.get(expr.charAt(i))){
// 不符合条件返回空字符串
return "";
}
// 满足则弹出栈顶元素
stack1.pop();
// 当弹出一次左扩号时 反转一次字符串 这里有一点问题 并不应该反转所有的字符串
int length = stack2.pop();
// 括号内的字符
String str = res.substring(length, res.toString().length());
// 拼接字符串 得到反转操作的字符
res = new StringBuilder(res.substring(0, length)).append(new StringBuilder(str).reverse());
}else{
// 字母则拼接如字符
res.append(expr.charAt(i));
}
}
if (stack1.empty()){
return res.toString();
}
return "";
}
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
- 1... 工作半年后更确定:我们依然不欠优绩主义什么6104
- 2... 我建了一个分享实习业务的仓库,欢迎大家贡献哦3792
- 3... 岁末论道:谁才是牛客 2025 最强修仙者?3160
- 4... #牛客2025仙途报告#居然是五颗星2528
- 5... 腾讯 微信支付一面面经2517
- 6... 【2025-年终总结】25届毕业生果果牛这一年~2184
- 7... 仙途报告1964
- 8... 一个程序员的自救书|从酒吧陪玩DM到上岸大厂1918
- 9... 在当下这个社会,在人生这个无常的时代,我真心希望你和各位牛友开心1418
- 10... 壕壕壕,京东发7个月年终,此生要做东孝子1316
正在热议
更多
# 牛客2025仙途报告 #
12038次浏览 225人参与
# 实习要如何选择和准备? #
129735次浏览 1496人参与
# 2025年终总结 #
193633次浏览 3245人参与
# 上班后和你想的一样吗? #
95072次浏览 701人参与
# 你有哪些缓解焦虑的方法? #
44408次浏览 867人参与
# 元旦假期你打算怎么过 #
699次浏览 19人参与
# 找工作,行业重要还是岗位重要? #
87214次浏览 1740人参与
# 今年你最想重开的一场面试是? #
11537次浏览 125人参与
# 你面试体验感最差/最好的公司 #
28262次浏览 463人参与
# 我们是不是被“优绩主义”绑架了? #
1517次浏览 59人参与
# 一人说一个提前实习的好处 #
21522次浏览 296人参与
# 牛友们的论文几号送审 #
63072次浏览 833人参与
# 礼物开箱Plog #
3053次浏览 100人参与
# 秋招落幕,你是He or Be #
21797次浏览 371人参与
# 机械人晒出你的简历 #
148199次浏览 885人参与
# 没有合适的工作,你会先找个干着,还是考公考研 #
149214次浏览 1241人参与
# 牛油的搬砖plog #
163504次浏览 1151人参与
# 工作中听到最受打击的一句话 #
12130次浏览 170人参与
# 重来一次,你会对开始求职的自己说 #
9810次浏览 236人参与
# 实习没事做是福还是祸? #
23273次浏览 332人参与

