关注
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 评论
相关推荐
04-25 13:38
北京工业大学 ETL工程师 点赞 评论 收藏
分享
点赞 评论 收藏
分享
03-27 17:33
门头沟学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我和mentor的爱恨情仇 #
11921次浏览 135人参与
# 面试等了一周没回复,还有戏吗 #
110684次浏览 1015人参与
# 平安产险科技中心求职汇总 #
246683次浏览 2626人参与
# 实习进度记录 #
267250次浏览 3380人参与
# 考研可以缓解求职焦虑吗 #
16094次浏览 211人参与
# 硬件人,你被哪些公司给挂了 #
45339次浏览 709人参与
# 五一之后,实习真的很难找吗? #
32690次浏览 165人参与
# 研究所笔面经互助 #
64329次浏览 424人参与
# 你喜欢工作还是上学 #
34362次浏览 358人参与
# 考研失败就一定是坏事吗? #
96430次浏览 812人参与
# 大学生该如何认清当下的就业环境? #
32003次浏览 279人参与
# 你怎么评价今年的春招? #
93381次浏览 1188人参与
# 考研人,我有话说 #
99313次浏览 913人参与
# 浅聊一下我实习的辛苦费 #
214115次浏览 1660人参与
# 我的AI电子员工 #
6073次浏览 52人参与
# 找不到好工作选择GAP真的丢人吗 #
56754次浏览 698人参与
# 格力求职进展汇总 #
169988次浏览 1228人参与
# 如果能重来,就业or读研你选哪个? #
132169次浏览 1658人参与
# 运营人的第一份offer应该如何选 #
137148次浏览 1069人参与
# 毕业论文怎么查AI率 #
20822次浏览 1378人参与
# 实习好累,可以辞职全力准备秋招吗 #
141385次浏览 1521人参与