关注
我的方法是用两个栈分别 1、 记录上一次左括号出现位置、索引坐标 2、对于非括号字符统计长度(方便反转),str 记录所有非括号字符 3、遍历右括号,判断是否有左括号,无返回 “” 4、存在左括号,对相应长度的字符进行反转 你可以照着我代码看一下,应该还是比较好理解的 // 用栈来判断括号是否匹配,str 记录非括号字符,每一对括号中的数翻转一次
static String resolve(String expr) {
Stack<Character> stack = new Stack<>();
Stack<Integer> reverse=new Stack<>();
String str = "";
int count=0; // 记录翻转长度
for (int i = 0; i < expr.length(); i++) {
// 记录上一左括号出现时,str 长度,记录需要翻转的长度
char c = expr.charAt(i);
if (c == '(') {
stack.add(c);
reverse.add(str.length());
} else if (c == ')') {
if (stack.size() < 1) {
return "";
}
int last = reverse.pop();
StringBuilder temp = new StringBuilder(str.substring(last, str.length()));
str = str.substring(0, last) + temp.reverse();
stack.pop();
count = 0; // 归零
} else {
str+=""+c;
count++;
}
}
return stack.size() == 0 ? str : "";
}
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 考研对你找工作产生了哪些影响? #
15106次浏览 136人参与
# 你的房租占工资的比例是多少? #
29111次浏览 304人参与
# 聊聊这家公司值得去吗 #
255541次浏览 2344人参与
# 找实习你看重大厂光环还是业务方向 #
8991次浏览 79人参与
# 职场捅娄子大赛 #
367085次浏览 3753人参与
# 你最满意的offer薪资是哪家公司? #
26989次浏览 143人参与
# 每人推荐一个小而美的高薪公司 #
74497次浏览 1364人参与
# kpi面有什么特征 #
40533次浏览 327人参与
# 打杂的实习你会去吗? #
111617次浏览 971人参与
# 机械应届生薪资要多少才合适? #
22830次浏览 92人参与
# 你有哪些缓解焦虑的方法? #
8630次浏览 269人参与
# 大家实习每天都在干啥 #
81215次浏览 500人参与
# 来聊聊机械薪资天花板是哪家 #
123856次浏览 739人参与
# 米哈游工作体验 #
15711次浏览 112人参与
# 秋招前后对offer的期望对比 #
291058次浏览 2177人参与
# 为了找工作你投递了多少公司? #
17792次浏览 250人参与
# 机械人的薪资开到多少,才适合去? #
109768次浏览 449人参与
# 机械只有读研才有出路吗? #
20290次浏览 230人参与
# 小米求职进展汇总 #
827606次浏览 5928人参与
# 硬件/芯片公司工作体验 #
76236次浏览 670人参与