关注
static StringBuilder s = new StringBuilder();
static void core(String nodes) {
// 叶子节点
if ("".equals(nodes)) {
return;
}
// 第一个是根节点
char root = nodes.charAt(0);
if (nodes.length() == 1) {
s.append(root);
return;
}
// 2(3,4(,5)) , 6(7,)
// 后面一个肯定是去除 一对()
nodes = nodes.substring(2,nodes.length() - 1);
// 找到左子树的范围
int cur = 1;
int find = -1;
if (nodes.charAt(0) == ',') {
// 提前结束左子树查找
cur = 0;
find = 0;
}else if(nodes.charAt(1) == ',') {
cur = 0;
find = 1;
}
if (find == -1) {
// 找到第一个 (
while (nodes.charAt(cur) != '(') {
cur++;
}
// 记录( - )
int leftSubRight = 1;
do {
cur++;
if (nodes.charAt(cur) == '(') {
leftSubRight++;
}else if(nodes.charAt(cur) == ')') {
leftSubRight--;
}
}while(leftSubRight != 0);
}
// [0-cur]为左子树范围
// 处理左子树
if (find != 0)
core(nodes.substring(0,Math.min(nodes.length(), cur + 1)));
// 根
s.append(root);
// 处理右子树
core(nodes.substring(find == 0 ? 1 : Math.min(nodes.length(), cur + 2),nodes.length()));
}
static String solution(String input) {
core(input);
return s.toString();
} 最后四分钟勉强凑出来
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 校招阶段,学历VS技术哪个更重要? #
9009次浏览 114人参与
# 顺丰求职进展汇总 #
52766次浏览 283人参与
# 不卡学历的大厂有哪些? #
15331次浏览 112人参与
# 腾讯音乐求职进展汇总 #
96902次浏览 563人参与
# 没有合适的工作,你会先找个干着,还是考公考研 #
121130次浏览 1145人参与
# 除了主业以外,你还有哪些其他收入? #
6040次浏览 103人参与
# 实习时,大家都怎么称呼自己的mentor? #
42894次浏览 270人参与
# 摸鱼被leader发现了怎么办 #
60525次浏览 369人参与
# 视觉/交互/设计招聘信息汇总 #
17956次浏览 612人参与
# 社恐入职新公司如何融入团队 #
10731次浏览 62人参与
# 实习如何「偷」产出? #
24480次浏览 299人参与
# 风评不好的公司,你会去吗? #
44861次浏览 320人参与
# 考研可以缓解求职焦虑吗 #
53376次浏览 474人参与
# 职场新人体验 #
14128次浏览 144人参与
# 实习打杂,要跑路吗 #
12190次浏览 156人参与
# 校园里的破防时刻 #
6816次浏览 76人参与
# 金融财经春招备战日记 #
22556次浏览 135人参与
# 求职遇到的搞笑事件 #
121617次浏览 795人参与
# 听到哪句话就代表面试稳了or挂了? #
175833次浏览 1395人参与
# 软开人,秋招你打算投哪些公司呢 #
107553次浏览 976人参与