关注
我的方法是用两个栈分别 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
相关推荐
06-27 18:00
杭州电子科技大学 测试工程师 点赞 评论 收藏
分享
05-14 10:15
上海工程技术大学 管理咨询 点赞 评论 收藏
分享
06-03 19:26
西北农林科技大学 C++ 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届校招投递进展 #
29229次浏览 228人参与
# 小米提前批笔试难吗 #
33882次浏览 356人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
10345次浏览 114人参与
# 为了找工作你花了哪些钱? #
27358次浏览 261人参与
# 你觉得专业和学校哪个对薪资影响最大 #
61274次浏览 490人参与
# 烟草笔面经互助 #
16854次浏览 180人参与
# 你今年的保底offer是哪家 #
118269次浏览 537人参与
# 大疆的机械笔试比去年难吗 #
72853次浏览 618人参与
# 打工人的精神状态 #
49403次浏览 858人参与
# 牛友们,签完三方你在忙什么? #
98173次浏览 852人参与
# 如何缓解入职前的焦虑 #
192293次浏览 1339人参与
# 你秋招想去哪些公司 #
21896次浏览 804人参与
# 担心入职之后被发现很菜怎么办 #
130710次浏览 775人参与
# 你觉得比亚迪今年还有春招吗? #
191177次浏览 1050人参与
# 秋招结束之后的日子 #
75164次浏览 910人参与
# 校招第一份工作你干了多久? #
85513次浏览 390人参与
# 视觉/交互/设计百问百答 #
46392次浏览 435人参与
# 听到哪句话就代表面试稳了or挂了? #
170710次浏览 1369人参与
# kpi面有什么特征 #
52389次浏览 403人参与
# 外包能不能当跳板? #
34293次浏览 218人参与
# 机械人春招想让哪家公司来捞你? #
344490次浏览 3078人参与