关注
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(' '))
查看原帖
点赞 评论
相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
02-26 17:55
成都信息工程大学 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 字节求职进展汇总 #
690202次浏览 6976人参与
# 机械人与华为的爱恨情仇 #
98591次浏览 891人参与
# 携程求职进展汇总 #
194216次浏览 1519人参与
# 牛友故事会 #
224691次浏览 4693人参与
# 小米提前批笔试难吗 #
28166次浏览 297人参与
# 文科生还参加今年的春招吗 #
7273次浏览 82人参与
# 满帮集团求职进展汇总 #
2085次浏览 52人参与
# 中兴求职进展汇总 #
561222次浏览 2581人参与
# 实习必须要去大厂吗? #
76110次浏览 1142人参与
# 求职你最看重什么? #
49654次浏览 302人参与
# 工作两年想退休了 #
95116次浏览 962人参与
# 讲讲我的真实离职原因 #
30670次浏览 366人参与
# 正在实习的你,有转正机会吗? #
347205次浏览 2770人参与
# 大厂无回复,继续等待还是奔赴小厂 #
97728次浏览 825人参与
# 读研or工作,哪个性价比更高? #
36202次浏览 518人参与
# 扒一扒那些奇葩实习经历 #
15050次浏览 168人参与
# 牛友打假中心 #
19440次浏览 1038人参与
# 德州仪器求职进展汇总 #
2412次浏览 75人参与
# 找工作,你会甘心进小厂还是猛冲大厂 #
261930次浏览 3001人参与
# bilibili求职进展汇总 #
43666次浏览 459人参与
# 你觉得机械有必要实习吗 #
39737次浏览 391人参与