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(' '))
点赞 评论

相关推荐

King987:既然是在校生的话,在校经历就应该丰富一些,然后你现在确实是经验尚浅,应该在做一个练习项目再去找实习。简历上的顺序应该是个人信息,在校经历,技术站还有项目经历
点赞 评论 收藏
分享
牛客网
牛客企业服务