题目解析
我的解题思路是:
根据第一行输入的依赖关系,统计出每个服务的直接子服务,记录在next字典中。
另外由于题目输出描述中说:输出的服务要按照:
按依赖关系列表中出现的次序排序。
因此,这里我还定义了一个first字典,用于记录每个服务第一次出现的位置。
当上面统计好后,就可以遍历第二行输入的故障服务列表了。
每遍历到一个故障服务,则删除next中对应服务,但是删除前,需要先记录将要删除服务的所有子服务。删除当前故障服务后,继续递归删除其子服务。
这样next剩下的就是正常服务了。
此时再按照first记录的出现位置对next种剩余的正常服务排序即可。
JS算法源码
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
const relations = (await readline()).split(",").map((s) => s.s

已下架不支持订阅
1233





