本题是一个典型的有向图拓扑排序问题。
每个微服务看作一个点。若服务 A 依赖服务 B,表示 B 必须先于 A 部署,因此建边:
B→A
同时,A 的入度加 1。
你正在参与一个大规模微服务架构的部署平台开发,系统中包含多个微服务,每个微服务在上线前需要其所有依赖的微服务都已部署并运行。
一个微服务通过字符串来表示,如:“userservice”,一个微服务可能依赖多个微服务的部署。
如果依赖关系存在环 (例如:A 依赖 B,B 依赖 C,C 依赖 A),那么就无法部署,因为存在“循环依赖”。
请给出一个函数,判断给定的微服务依赖“无环”,并返回部署顺序,如果存在环,返回字符串 Can not deploy。