关注
棒!添加注解版! public static String parse(String str){
StringBuilder sb = new StringBuilder();
LinkedList<Integer> len = new LinkedList<>();
String temp = ""; // 记录括号内的字符串
// 针对字符串,处理顺序依次为:去括号,统计出现次数,拼接结果
for(int i=0;i<str.length();i++){
char c = str.charAt(i);
if(c == '('){
len.add(sb.length());
continue;
}
if(c == ')'){
// 移除上一个括号开始时的下标
int newLeftIndex = len.remove(len.size()-1);
temp = sb.substring(newLeftIndex);
i++;
}
// 处理数字
int start = i;
while (i<str.length() && str.charAt(i)>='0' && str.charAt(i)<='9'){
i++;
}
// 获取字符后面的数字
if(i-start>=1){
int count = Integer.valueOf(str.substring(start,i));
for(int k=0;k<count-1;k++){
if (temp==""){
sb.append(str.charAt(start-1));
}else {
sb.append(temp);
}
}
temp = "";
i--;//若存在数字,此时i指向的字符并没有经过上述判断,所以需要减去1.
}else {
sb.append(str.charAt(i));
}
}
return sb.toString();
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 小厂实习有必要去吗 #
28914次浏览 194人参与
# 我的工作日记 #
50761次浏览 705人参与
# 文科生还参加今年的春招吗 #
2007次浏览 21人参与
# 选择和努力,哪个更重要? #
37672次浏览 409人参与
# 如果公司降薪,你会跳槽吗? #
42960次浏览 335人参与
# 如果再来一次,你还会学硬件吗 #
101363次浏览 1221人参与
# 影石Insta360求职进展汇总 #
106215次浏览 945人参与
# 一人推荐一个值得去的通信/硬件公司 #
160354次浏览 1732人参与
# 机械人选offer,最看重什么? #
68057次浏览 431人参与
# 大疆今年的机械笔试难吗? #
34656次浏览 406人参与
# 秋招前后对offer的期望对比 #
222931次浏览 1667人参与
# 大疆的机械笔试比去年难吗 #
63475次浏览 575人参与
# 24届市场营销薪资爆料 #
9057次浏览 62人参与
# 秋招拿一个offer可以躺平吗 #
125909次浏览 885人参与
# 你的秋招简历被谁挂了? #
214534次浏览 2389人参与
# 长光卫星求职进展汇总 #
27056次浏览 180人参与
# 春招启动,你开始投递了吗? #
48425次浏览 454人参与
# 职场上哪些事情令人讨厌 #
12957次浏览 59人参与
# 机械人,你的第一份感谢信是谁给的 #
19885次浏览 258人参与
# 我是XXX,请攻击我最薄弱的地方 #
11546次浏览 106人参与