题目:
解析:
题目的意思很清晰
代码产出:
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
var total = 0
var arrTotal = []
rl.on('line', function (line) {
total++
if(total%2!==0) {
arrTotal.push(line.split(' ').slice(1))
} else {
arrTotal.push(line.split(' ').slice(1))
fn(arrTotal[0], arrTotal[1])
arrTotal.length = 0
}
});
var fn = (arr1, arr2) => {
const result = []
arr2 = [...new Set(arr2)].sort((a, b) => {
return Number(a)>Number(b)?1:-1
})
arr2.splice(0, 1) // 处理掉空字符串
for(let i=0;i<arr2.length;i++) {
let count = 0 // 用来记录arr1[j]中存在多少个arr2[i]
let temp = [] // 临时存放满足条件的索引和值
// if(arr1.join('').includes(arr2[i])) {// 如果目标数组中存在arr2[i]字符,否则查看下一个字符
for(let j=0;j<arr1.length;j++) {
if (arr1[j].includes(arr2[i])) {
temp.push(j, arr1[j])
count++
}
}
// 如果存在数据
if (count) {
result.push(arr2[i]) // 先将要查找的数字 放到results
// 当一个字符查找结束,则把临时数据存放到结果数组results
result.push(count, ...temp)
}
// }
}
result.unshift(result.length)
console.log(...result)
}