AlgoMooc
← 返回题库

P5304. 方法的重载和调用

简单通过率 0% · 提交 4 · 通过 0
哈希表字符串模拟

小慕正在开发一个编程语言编译器,需要实现方法重载与调用的管理模块。 系统支持以下2种操作: 1. 定义一个方法:输入格式为 "Type name(var1 a1, var2 a2, ...)",方法体(大括号及内部代码)被省略。 2. 调用一个方法:输入格式为 "name(var1, var2, ...)"。 上述格式中,vari 表示变量类型,ai 表示变量名,name 表示方法名,Type 表示返回类型,它们都是由小写字母组成的字符串。 小慕需要在每次操作后输出系统反馈: 1. 定义方法时,若成功,则输出 "ok.";若方法名与参数类型组合已存在,则输出 "method xxx is already defined."。 2. 调用方法时,若成功,则输出 "ok";若方法名不存在,则输出 "";若方法名存在但参数类型不匹配,则输出 "method xxx cannot be applied to given"。

提示:带虚线的词点一下有通俗解释。

输入描述

第一行输入一个正整数q,代表操作次数。 接下来的2*q行,每2行代表一次操作。 第一行为一个正整数op,代表操作类型,其中1表示创建,2表示调用 第二行为一个字符串,代表一次操作。 1 <= q <= 100 1 <= op <= 2 操作的字符串长度不超过100,且格式保证合法。

输出描述

输出q行字符串,代表每次操作系统的反馈。

示例

示例 1

输入

7
1
int f(int x)
1
int g(int x,String s)
2
f()
1
void f(double x,double y)
2
f(double,double)
2
solve(int,String)
1
void f(int y)

输出

ok.
ok.
method f cannot be applied to given types
ok.
ok.
cannot find symbol solve.
method f is already defined.

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。