cswork / OA打开练习工作台

ICA 式 · 4 关 · 约 90 分钟 · 不可用 AI

银行账本

存取款与转账 → 支出排行 → 定时转账与取消 → 账户合并与历史余额。四关递进,后面的关卡沿用前面的数据结构。

得分 0 / 4

实现一个内存银行账本:src/ledger.py 里的 Ledger 类。每个方法的第一个参数都是 timestamp,是一个整数,每次调用都严格大于上一次。金额是正整数,账户 id 是非空字符串。

方法返回
open_account(timestamp, account_id)新开一个余额为 0 的账户,返回 True;id 已存在返回 False
deposit(timestamp, account_id, amount)存入后的余额;账户不存在返回 None
withdraw(timestamp, account_id, amount)取出后的余额;账户不存在或余额不足 amount 返回 None
transfer(timestamp, source_id, target_id, amount)转出方的新余额;任一账户不存在、两个 id 相同或转出方余额不足 amount 时返回 None

返回 None 或 False 的调用不改变任何状态。

本关的公开测试是 tests/test_level1.py,评测时还会跑隐藏测试。全部通过后解锁第 2 关。类里后面几关的方法先保留着,说明会随关卡给出。

登录后运行测试,通过一关就解锁下一关。

正在打开项目…