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

大概意思就是:

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 = []
    }
}