关注
我的方法是用两个栈分别 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
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
查看18道真题和解析 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 第一次找实习,我建议__ #
17786次浏览 241人参与
# 你怎么评价今年的春招? #
141354次浏览 1384人参与
# 从mentor身上学到了__ #
15968次浏览 259人参与
# 秋招暂停,我将对以下公司做出处罚__ #
28155次浏览 127人参与
# 什么样的公司千万别去 #
14579次浏览 110人参与
# 韶音科技求职进展汇总 #
59346次浏览 504人参与
# 你听到的“最没用”的秋招建议 #
19384次浏览 222人参与
# 如果今天是你的last day,你会怎么度过? #
46926次浏览 294人参与
# 外出实习被同学举报 #
2730次浏览 29人参与
# 秋招我要惩罚这些公司 #
2296次浏览 22人参与
# 2025秋招体验点评 #
45250次浏览 465人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
3729次浏览 18人参与
# 你认为工作的意义是什么 #
201462次浏览 1267人参与
# 工作以后,你父母对你啥态度 #
8597次浏览 90人参与
# 打工人的至爽时刻or至暗时刻 #
41269次浏览 221人参与
# 在国企工作的人,躺平了吗? #
374800次浏览 3930人参与
# 秋招结束之后的日子 #
105255次浏览 1016人参与
# 实习生的蛐蛐区 #
834907次浏览 4092人参与
# 你的秋招第一面感觉怎么样 #
127753次浏览 795人参与
# 非技术岗简历怎么写 #
259725次浏览 3103人参与
