关注
我的方法是用两个栈分别 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
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 父母问你工作找得怎么样,怎么回 #
5278次浏览 78人参与
# 面试被问期望薪资时该如何回答 #
389234次浏览 2172人参与
# 厦门银行科技岗值不值得投 #
19528次浏览 427人参与
# 从投递到OC,你用了多久 #
6623次浏览 54人参与
# 想从事Agent应该学习哪些技术? #
1103次浏览 34人参与
# 哪一刻你突然觉得实习“有点值了” #
5278次浏览 48人参与
# 什么人最适合大厂? #
3144次浏览 31人参与
# AI时代还有必要刷leetcode吗? #
1315次浏览 25人参与
# 有哪些公司在面试时考察AICoding? #
1963次浏览 27人参与
# 哪些公司面试还在问八股? #
1858次浏览 35人参与
# HR面都在聊什么? #
1932次浏览 32人参与
# 一人一道大厂面试题 #
131358次浏览 1326人参与
# 你的秋招第一面感觉怎么样 #
146234次浏览 814人参与
# 哪些公司一直卡在简历筛选 #
109128次浏览 377人参与
# 总结:哪家公司最喜欢泡池子 #
170619次浏览 614人参与
# 拿到offer之后,可以做些什么 #
106327次浏览 514人参与
# 计算机有哪些岗位值得去? #
393771次浏览 2857人参与
# 春招至今,你收到几个面试了? #
144759次浏览 1642人参与
# 说说你知道的学历厂 #
404782次浏览 1446人参与
# Agent面试会问什么? #
45239次浏览 1554人参与
# 一人分享一个skill #
12139次浏览 252人参与
