0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
投递平安人寿等公司10个岗位 >
0 点赞 评论 收藏
分享
!c: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();
} 最后四分钟勉强凑出来
投递小米集团等公司10个岗位 >
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
投递流利说等公司10个岗位 >
0 点赞 评论 收藏
分享
2019-09-01 11:47
门头沟学院 前端工程师 0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
投递虎牙等公司10个岗位 >
0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: