关注
`` 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... 急哭了!985科班本三段大厂实习被阿里一脚踹飞!简历都没收!1.2W
- 2... 32分钟投了18家网申,效率如何?1.1W
- 3... 秋招以来的AI面经问题8685
- 4... 面试官视角聊聊:如何在AI浪潮中找到好工作?4205
- 5... 美团测开->腾讯后端,感谢那个不愿放弃的自我2779
- 6... C++ MySql 常考面试题总结2453
- 7... 面试被问到“agent的记忆机制怎么设计”,该怎么回答?2226
- 8... 润科通用Java实习1910
- 9... 2027届暑期实习大科普,为什么从来没人给你讲过这些事情?1905
- 10... 拒绝无效的努力1828
正在热议
更多
# xx岗简历求拷打 #
18270次浏览 162人参与
# 牛友的志愿填报指南 #
50090次浏览 216人参与
# 开工第一帖 #
61305次浏览 1037人参与
# 找工作有哪些冷知识 #
226798次浏览 2688人参与
# 有转正机会的小厂实习值得去吗? #
12122次浏览 115人参与
# 应届生,你找到工作了吗 #
109050次浏览 652人参与
# 今年形式下双非本找得到工作吗 #
288072次浏览 1639人参与
# 听劝,这个简历怎么改 #
383449次浏览 1832人参与
# 掌握什么AI技能,会为你的求职大大加分 #
13852次浏览 509人参与
# 你上一次加班是什么时候? #
134081次浏览 746人参与
# 打工人的精神状态 #
137965次浏览 1506人参与
# 携程求职进展汇总 #
894762次浏览 5959人参与
# 海康威视求职进展汇总 #
570425次浏览 3725人参与
# 如何看待offer收割机的行为 #
1050734次浏览 6616人参与
# 你怎么看待AI面试 #
152011次浏览 806人参与
# 工作不开心辞职是唯一出路吗 #
10859次浏览 44人参与
# 面试反问你会问什么 #
170342次浏览 1752人参与
# 你最讨厌面试被问什么 #
13209次浏览 139人参与
# 你找工作的时候用AI吗? #
177440次浏览 905人参与
# 金三银四,你有感觉到吗 #
698993次浏览 6100人参与
查看11道真题和解析
