AlgoMooc
← 返回题库

K0070. 神秘的数据库

中等通过率 45% · 提交 76 · 通过 34
哈希表模拟

小慕正在维护一个重要的项目数据库,里面存储着当前的项目成员信息表(`curTable`)。每个成员都有一个唯一的编号(`neId`)、姓名(`neName`)以及一个状态标记(`neFlag`)。为了确保数据一致,小慕还保留了一份备份成员信息表(`bakTable`),其中只包含每个成员的编号(`neId`)和姓名(`neName`)。小慕的任务是将备份表中的信息到当前表中,使两个表保持一致。 同步规则: - 对于 `curTable` 中不存在的 `neId`,在 `curTable` 中新增该条记录,并将 `neFlag` 初始设置为 0。 - 对于 `curTable` 中已存在的 `neId`,将 `neName` 更新为 `bakTable` 中对应的值,`neFlag` 保持不变。

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

输入描述

- 第一行输入一个整数 `curTableSize`,表示当前网元信息表 `curTable` 的记录条数。 - 接下来 `curTableSize` 行,每行包含 `neId`、`neName` 和 `neFlag`,分别表示网元的标识符、名称和标记值。 - 接下来输入一个整数 `bakTableSize`,表示备份网元信息表 `bakTable` 的记录条数。 - 接下来 `bakTableSize` 行,每行包含 `neId` 和 `neName`,分别表示备份表中的网元标识符和名称。 - `neId` 值仅由数字组成,且在 `1` 到 `100000` 范围内。 - `neName` 由字母和数字组成,长度为 `1` 到 `20`。 - `neFlag` 为一个数字,范围为 `0` 到 `9`。 - 0 <= `curTableSize`, `bakTableSize` <= 50000,且 `curTableSize` 和 `bakTableSize` 不同时为 0。

输出描述

- 按照 `neId` 升序输出同步后的当前网元信息表内容,每行输出 `neId`、`neName` 和 `neFlag`,用空格分隔。

示例

示例 1

输入

4
256 NE256 1
290 NE290 0
268 26800000 1
257 NE257 1
3
273 NE273
268 NE268
257 NE257

输出

256 NE256 1
257 NE257 1
268 NE268 1
273 NE273 0
290 NE290 0

说明:- 当前网元信息表 `curTable` 中有 4 条记录:`256`、`290`、`268` 和 `257`。根据备份表 `bakTable` 中的记录进行同步。 - 在同步过程中,`268` 的 `neName` 更新为 `NE268`,而其他记录保持不变。`273` 在 `curTable` 中不存在,因此会新增一条记录,`neFlag` 设置为 0。

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

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

登录后查看题目图解

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

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