121. 【应-7-2·难】多级继承方法解析
中等
Python
📋 题目描述
给定一些类的单继承关系(每个类至多有一个父类),以及每个类自定义实现的方法名集合。
对于查询 `Class.method`,请输出**沿继承链向上找到的最近实现该方法的类名**(包含 `Class` 自身);如果继承链上没有任何类实现了该方法,则输出 `NotFound`。
📥 输入描述
第一行三个整数 N M Q,分别为类的数量、方法定义条数、查询条数。
接下来 N 行,每行 `Class Parent`,表示 Class 的父类是 Parent;Parent 为 `-` 时表示 Class 没有父类。
接下来 M 行,每行 `Class.method`,表示 Class 自定义实现了 method。
接下来 Q 行,每行查询 `Class.method`。
所有名字都是不含空格、不含点的字符串。
📤 输出描述
Q 行,每行是查询的答案:实现该方法的最近祖先类名,或 `NotFound`。
输入样例
3 2 3 A - B A C B A.m1 B.m2 C.m1 C.m2 C.m3
输出样例
A B NotFound
提示:建一个 dict parent[Class]=Parent;建一个 set methods[Class] = 自定义方法集合。
对每个查询 Class.method:从 Class 开始,沿 parent 向上走,第一个 method ∈ methods[当前类] 的类即为答案。
请登录后提交代码