题解 | #数据分类处理#

数据分类处理

http://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd

题目很长读题花了很长时间。

大概意思就是:

I,R两个数组,将数组R排序然后去重,然后在I数组中找包含R[i]的数。0<=i<=R.length

如果I有包含R[i]的数

1.输出R[i]

2.输出包含R[i]的个数

3.输出包含R[i]数的I数组的索引

4.输出包含R[i]数的I数组的值

5.统计以上个数


// 从R依次中取出R<i>,对I进行处理,找到满足条件的I: 

// I整数对应的数字需要连续包含R<i>对应的数字。比如R<i>为23,I为231,那么I包含了R<i>,条件满足 
let line
let arr = []
while(line = readline()){
    arr.push(line)
    if(arr.length == 2){
        let listI = arr[0].split(' ').map(i=>parseInt(i));
        listI.splice(0,1)
        let listR = arr[1].split(' ').map(i=>parseInt(i));
        listR.splice(0,1)
        
        listR = listR.reduce((list,item)=>{
            if(!list.includes(item)){
                 let index = list.findIndex(i=>item<i);
                 index > -1 ? list.splice(index,0,item) : list.push(item)
            }
           return list
        },[]);
        
        let res = []
         listR.forEach((r,rIndex)=>{
             let temp = []
             let hasAdd = false
             let result = []
//              (1)先输出R<i>
                 listI.forEach((i,iIndex)=>{
                     if(i.toString().includes(r.toString())){
                         if(!hasAdd){
                             temp.push(r);
                             hasAdd = true
                         }
//                       (3)然后输出满足条件的I在I序列中的位置索引(从0开始); 
//                        (4)最后再输出I。
                         result.push(iIndex)
                         result.push(i)
                     }
                });
//              2)再输出满足条件的I的个数
             if(hasAdd){
                 temp.push(result.length / 2);
                 temp = temp.concat(result)
                 res = res.concat(temp)
             }
          })
        res.unshift(res.length)
        console.log(res.join(' '))
        arr = []
    }
}


全部评论

相关推荐

06-25 21:00
门头沟学院 Java
多拆解背记一下当前的高频场景面试题,结合自己的项目经历去作答,面试通过率原来真的不会低!
牛客96559368...:小公司不就是这样的吗,面试要么是点击就送,要么就是往死里拷打,没有一个统一的标准。这个不能代表所有公司
点赞 评论 收藏
分享
程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务