关注
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 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 考研对你找工作产生了哪些影响? #
5756次浏览 70人参与
# 打杂的实习你会去吗? #
108953次浏览 953人参与
# 聊聊这家公司值得去吗 #
239911次浏览 2242人参与
# 机械只有读研才有出路吗? #
20006次浏览 228人参与
# 你认为哪个岗位找工作最卷 #
16995次浏览 66人参与
# 面试被问第一学历差时该怎么回答 #
130871次浏览 823人参与
# 远程面试的尴尬瞬间 #
101117次浏览 830人参与
# 硬件人绝对不能踩的坑 #
61461次浏览 736人参与
# 工作中哪个瞬间让你想离职 #
24274次浏览 166人参与
# kpi面有什么特征 #
36210次浏览 266人参与
# 你有哪些缓解焦虑的方法? #
3948次浏览 143人参与
# 如何缓解入职前的焦虑 #
187428次浏览 1319人参与
# 职场人,说说你的烦心事 #
9145次浏览 83人参与
# 秋招最大的收获是什么? #
34297次浏览 302人参与
# 实习生应该准时下班吗 #
223654次浏览 1398人参与
# 职场上哪些事情令人讨厌 #
16961次浏览 86人参与
# 你今年的平均薪资是多少? #
126856次浏览 661人参与
# 为了找工作你投递了多少公司? #
12425次浏览 170人参与
# 运营/市场营销人的秋招现状 #
17357次浏览 189人参与
# 数字马力求职进展汇总 #
175401次浏览 1470人参与