关注
棒!添加注解版! 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();
}
查看原帖
点赞 评论
相关推荐
06-13 10:15
门头沟学院 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 技术岗笔试题求解 #
77594次浏览 1005人参与
# 拼多多求职进展汇总 #
642344次浏览 4983人参与
# 工作一周年分享 #
30698次浏览 179人参与
# 如果公司给你放一天假,你会怎么度过? #
16249次浏览 122人参与
# 作业帮求职进展汇总 #
55758次浏览 370人参与
# 华子oc时间线 #
1236418次浏览 6473人参与
# OPPO求职进展汇总 #
662176次浏览 5032人参与
# 总结:哪家公司面试体验感最差 #
60475次浏览 273人参与
# 职场上哪些事情令人讨厌 #
18719次浏览 91人参与
# 三一重工求职进展汇总 #
14313次浏览 65人参与
# 去年你投递实习了吗? #
21991次浏览 329人参与
# 这些公司卡简历很严格 #
41287次浏览 204人参与
# 扒一扒那些奇葩实习经历 #
66306次浏览 913人参与
# 经纬恒润求职进展汇总 #
121666次浏览 1032人参与
# 提前批过来人的忠告 #
113858次浏览 1194人参与
# 说说你知道的学历厂 #
58378次浏览 351人参与
# 秋招最大的收获是什么? #
36871次浏览 311人参与
# 找工作时的取与舍 #
80011次浏览 566人参与
# 你认为小厂实习有用吗? #
29311次浏览 341人参与
# 哪一瞬间觉得自己长大了 #
13908次浏览 327人参与