关注
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 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
3358次浏览 81人参与
# 刚工作,应该先搞钱or搞成长? #
20869次浏览 165人参与
# 牛客AI体验站 #
15659次浏览 278人参与
# 你觉得第一学历对求职有影响吗? #
230037次浏览 1267人参与
# 如何提高实习转正率? #
85749次浏览 504人参与
# 找工作中的小确幸 #
80426次浏览 448人参与
# 实习在多还是在精 #
82808次浏览 509人参与
# 你觉得技术面多长时间合理? #
168132次浏览 1170人参与
# 牛友的春节生活 #
12088次浏览 229人参与
# 月薪多少能在一线城市生存 #
136444次浏览 898人参与
# 哪些公司对双非友好 #
206981次浏览 1163人参与
# 选了这个offer,你有没有后悔? #
738620次浏览 4472人参与
# 秋招踩过的“雷”,希望你别再踩 #
185721次浏览 1684人参与
# 备战春招/暑实,现在应该做什么? #
8001次浏览 204人参与
# 从夯到拉,锐评职场mentor #
7834次浏览 113人参与
# 实习到现在,你最困惑的一个问题 #
7042次浏览 169人参与
# 电网笔面经互助 #
59700次浏览 476人参与
# 找工作中的意难平 #
983529次浏览 6424人参与
# 制造业的秋招小结 #
143383次浏览 2089人参与
# 春招什么时候投? #
13319次浏览 211人参与
查看10道真题和解析