关注
我的方法是用两个栈分别 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
相关推荐
10-10 14:40
香港城市大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 第一次找实习,我建议__ #
17615次浏览 240人参与
# 面对职场PUA,是忍还是怼? #
22923次浏览 93人参与
# 从mentor身上学到了__ #
15830次浏览 258人参与
# 你认为工作的意义是什么 #
201361次浏览 1267人参与
# 什么样的公司千万别去 #
14462次浏览 110人参与
# 找工作时遇到的神仙HR #
1036826次浏览 5585人参与
# 外出实习被同学举报 #
2670次浏览 29人参与
# 你怎么评价今年的春招? #
141313次浏览 1384人参与
# 你上一次加班是什么时候? #
115387次浏览 699人参与
# 打工人的至爽时刻or至暗时刻 #
41227次浏览 221人参与
# AI了,我在打一种很新的工 #
112629次浏览 1272人参与
# 秋招暂停,我将对以下公司做出处罚__ #
28087次浏览 127人参与
# 你的秋招第一面感觉怎么样 #
127728次浏览 795人参与
# 如果今天是你的last day,你会怎么度过? #
46865次浏览 294人参与
# 秋招我要惩罚这些公司 #
2252次浏览 22人参与
# 你听到的“最没用”的秋招建议 #
19308次浏览 222人参与
# 字节出了豆包coding模型 #
2207次浏览 22人参与
# 韶音科技求职进展汇总 #
59271次浏览 503人参与
# 2025秋招体验点评 #
45162次浏览 464人参与
# 你喜欢工作还是上学 #
81376次浏览 869人参与
查看4道真题和解析