关注
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 评论
相关推荐
06-07 21:26
江南大学 C++ 点赞 评论 收藏
分享
点赞 评论 收藏
分享
06-06 17:26
河南理工大学 底盘工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 聊聊这家公司值得去吗 #
230362次浏览 2167人参与
# 职场人,说说你的烦心事 #
8282次浏览 65人参与
# 你认为哪个岗位找工作最卷 #
9581次浏览 34人参与
# 职场上哪些事情令人讨厌 #
16533次浏览 81人参与
# 一人一个landing小技巧 #
78126次浏览 1115人参与
# kpi面有什么特征 #
30216次浏览 174人参与
# 秋招最大的收获是什么? #
33776次浏览 296人参与
# 大家每天通勤多久? #
41873次浏览 329人参与
# 职场破防瞬间 #
234795次浏览 2125人参与
# 小红书求职进展汇总 #
56009次浏览 483人参与
# 为了找工作你投递了多少公司? #
8234次浏览 107人参与
# 职场吐槽大会 #
204847次浏览 1631人参与
# tplink提前批进度交流 #
162564次浏览 1377人参与
# 机械制造岗投递时间线 #
22658次浏览 345人参与
# 通信硬件牛牛的实习日记 #
7078次浏览 65人参与
# 硬件人你反向读研了吗 #
41709次浏览 630人参与
# 许愿池 #
283009次浏览 2868人参与
# 担心入职之后被发现很菜怎么办 #
126200次浏览 753人参与
# 找工作前vs找工作后的心路变化 #
9543次浏览 102人参与
# 聊聊你的职场新体验 #
157238次浏览 1367人参与