题解 | #数据分类处理#
数据分类处理
https://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd
const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () => (await iter.next()).value; void async function () { // Write your code here let iLine = await readline() let rLine = await readline() iLine = iLine.split(' ').slice(1) rLine = rLine.split(' ').slice(1).map(el => parseInt(el)).sort((a,b) => a- b) const res = [] for(let i = 0; i < rLine.length; i++) { let rCur = rLine[i] if(i > 0 && rCur === rLine[i - 1]) continue //去重,也可以用Set去重 let findI = false // 是否已经找到包含R<i>的I? let idxTotal = 0 let iTotal = 0 for(let j = 0; j < iLine.length; j++) { let iCur = iLine[j] if(iCur.indexOf(rCur) >= 0) { // 找到第一个包含R<i>的I => 1.存入R<i> 2.存入包含R<i>的I的总数,暂定为-1,记录坐标方便替换 3. 循环(匹配到的I的序号 I的值) 并且计数 -> 替换 if(!findI) { // 1. 存入当前匹配到的R<i> res.push(rCur) // 2. 包含rCur的I的总数 暂记为-1 res.push(-1) idxTotal = res.length - 1 findI = true } iTotal++ res.push(j) res.push(Number(iCur)) } } if(findI) { // 替换包含R<i>的I的总数 res[idxTotal] = iTotal } } res.unshift(res.length) console.log(res.join(' ')) }()