关注
棒!添加注解版! 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();
}
查看原帖
点赞 评论
牛客热帖
更多
正在热议
更多
# 我的求职进度条 #
983191次浏览 6539人参与
# 携程笔试 #
153291次浏览 888人参与
# 厦门银行科技岗值不值得投 #
18869次浏览 422人参与
# 米哈游工作体验 #
29825次浏览 144人参与
# 拼多多集团-PDD笔试 #
63568次浏览 484人参与
# 哪些公司一直卡在简历筛选 #
105420次浏览 360人参与
# 中国电信笔试 #
40617次浏览 399人参与
# 拿到offer之后,可以做些什么 #
104579次浏览 511人参与
# 入职第一天,你准备什么时候下班 #
118093次浏览 516人参与
# Agent面试会问什么? #
37379次浏览 1411人参与
# 一人分享一个skill #
9560次浏览 243人参与
# 说说你知道的学历厂 #
401252次浏览 1433人参与
# 春招至今,你收到几个面试了? #
96314次浏览 1235人参与
# 选实习,你更看重哪方面? #
76694次浏览 505人参与
# 拼多多工作体验 #
55294次浏览 389人参与
# 记录实习开销 #
214405次浏览 1747人参与
# 你觉得专业和学校哪个对薪资影响最大 #
104447次浏览 619人参与
# 给工作过的公司写一条大众点评,你会怎么写? #
12089次浏览 143人参与
# TCL求职进展汇总 #
152247次浏览 665人参与
# 通信/硬件的薪资开多少,才值得去? #
76660次浏览 407人参与
# 面试体验最好和最差的公司 #
25205次浏览 170人参与

查看5道真题和解析