关注
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 评论
相关推荐
2025-12-28 19:14
哈尔滨工业大学 算法工程师 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
3471次浏览 82人参与
# 刚工作,应该先搞钱or搞成长? #
20885次浏览 165人参与
# 牛客AI体验站 #
15690次浏览 278人参与
# 你觉得第一学历对求职有影响吗? #
230059次浏览 1267人参与
# 如何提高实习转正率? #
85785次浏览 504人参与
# 找工作中的小确幸 #
80435次浏览 448人参与
# 实习在多还是在精 #
82817次浏览 509人参与
# 你觉得技术面多长时间合理? #
168154次浏览 1170人参与
# 牛友的春节生活 #
12240次浏览 229人参与
# 月薪多少能在一线城市生存 #
136468次浏览 898人参与
# 哪些公司对双非友好 #
207002次浏览 1163人参与
# 选了这个offer,你有没有后悔? #
738679次浏览 4472人参与
# 秋招踩过的“雷”,希望你别再踩 #
185728次浏览 1684人参与
# 备战春招/暑实,现在应该做什么? #
8091次浏览 205人参与
# 从夯到拉,锐评职场mentor #
7903次浏览 113人参与
# 实习到现在,你最困惑的一个问题 #
7127次浏览 169人参与
# 电网笔面经互助 #
59707次浏览 476人参与
# 找工作中的意难平 #
983673次浏览 6424人参与
# 制造业的秋招小结 #
143390次浏览 2089人参与
# 春招什么时候投? #
13395次浏览 211人参与
查看9道真题和解析
OPPO公司福利 1202人发布