关注
let str = 'B->A C->A D->B D->C D->E' //[A-B] [A-C] [B-D] [C-D] [E-D]
//[A,E][B,C][D]
let list = str.split(' ')
list = list.map(item=> item.split('->').reverse())
let result = [[]]
list.forEach( item=> {
let start = item[0]
let end = item[1]
let index1 = result.findIndex( item => { return item.includes(start)})
let index2 = result.findIndex( item => { return item.includes(end)})
//start和end都不存在
if(index1 == -1 && index2 == -1){
result[0].push(start)
if(!result[1]){
result[1] = []
}
result[1].push(end)
}else if( index1 == -1 && index2 > -1) { //start不存在 end存在
result[0].push(start)
}else if( index1 > -1 ) { //start存在
result = result.map( item => item.filter(el=> el!=end)) //去掉end 再插入end
if(!result[index1+1]){
result[index1+1] = []
}
result[index1+1].push(end)
}
})
let arr = []
result.forEach( item => {
arr = [...arr, ...item.sort()]; //同一层级默认字母排序
})
console.log(arr.join(' '))
查看原帖
1 评论
相关推荐
点赞 评论 收藏
分享

点赞 评论 收藏
分享
牛客热帖
更多
- 1... 双一流本的春招失败总结 面试近40家公司 0offer结局 准备转行了2.3W
- 2... 🔥【六月创作狂欢季】重磅上线!发文赚现金,多发多得🔥1.6W
- 3... 信息差补全:哪些假国企要避雷1.5W
- 4... 腾讯wxg一面 1h30min8245
- 5... 论双非大一的“暑期”能拿下大厂offer吗?7232
- 6... 再也不用写代码了哈哈哈哈哈哈哈6987
- 7... 牛友们,你们有多久没回家了?6703
- 8... 在西二旗上班真的没有一点活人感5446
- 9... 作为1名HR真是不吐不快5051
- 10... 去大厂实习了,感觉跟上高中没区别啊4909
正在热议
更多
# 考研对你找工作产生了哪些影响? #
7092次浏览 77人参与
# 摸鱼被leader发现了怎么办 #
57394次浏览 339人参与
# 聊聊这家公司值得去吗 #
242201次浏览 2257人参与
# kpi面有什么特征 #
36913次浏览 269人参与
# 你认为哪个岗位找工作最卷 #
17942次浏览 76人参与
# 职场人,说说你的烦心事 #
9246次浏览 83人参与
# 打杂的实习你会去吗? #
109643次浏览 957人参与
# 为了找工作你投递了多少公司? #
13568次浏览 201人参与
# 机械只有读研才有出路吗? #
20091次浏览 230人参与
# 职场上哪些事情令人讨厌 #
17013次浏览 86人参与
# 我发现一个规律 #
7784次浏览 69人参与
# 通信硬件知识分享 #
27738次浏览 482人参与
# 硬件开发岗知多少 #
11323次浏览 116人参与
# 工作中哪个瞬间让你想离职 #
24319次浏览 166人参与
# 没有合适的工作,你会先找个干着,还是考公考研 #
111843次浏览 1111人参与
# 你有哪些缓解焦虑的方法? #
4586次浏览 153人参与
# 实习想申请秋招offer,能不能argue薪资 #
138853次浏览 885人参与
# 签约/解约注意事项 #
678029次浏览 4056人参与
# 秋招最大的收获是什么? #
34335次浏览 302人参与
# 担心入职之后被发现很菜怎么办 #
127135次浏览 760人参与