let m = readline(); let n = readline(); let map = new Map(); let count = 0; for(let i = 0;i < n; i++){ let line = readline().split(" "); map.set(line[0], { value:map.has(line[0]) ? (map.get(line[0]).value.concat(line.join(" "))) : ([].concat(line.join(" "))), count:map.has(line[0]) ? (map.get(line[0]).count + 1) : 1 }); } map.forEach((item) => { if(item.count === 2) { let flag = true; for(let i = 0; i < item.value.length; i++) { if(map.has(item.value[i].split(" ")[2])) { flag = false; break; } } if(flag) { count ++; } } }); 当时想着构建树的话太麻烦了。。。我的想法是把父节点和对应的输入存起来并记录父节点在输入中出现的次数,如果满足条件的话,父节点肯定会在输入中出现两次,并且它的子节点一定不会出现在父节点中 思路和代码可能有点绕 凑合当个参考吧= =
点赞 评论

相关推荐

牛客网
牛客企业服务