华为OD机试真题 新系统 2026-07-05 PythonJS 实现【SQL记录拆分】

📅 2026/7/13 15:04:52
华为OD机试真题 新系统 2026-07-05 PythonJS 实现【SQL记录拆分】
目录题目思路Code题目题目内容某分布式数据库系统需要将 SQL 操作日志拆分到多个文件中。给定单个文件可保存的最大 SQL 语句行数 split_line,以及 SQL 语句数组 sql_text,请按规则将 SQL 语句拆分到不同文件中,并返回拆分后的文件数量。规则一:单个数组成员的 SQL 语句可能包含多条语句,语句之间按分号分隔;同一个数组成员必须作为同一行完整保存,不可跨文件拆分。规则二:部分语句带事务标签 [Tn],n 为正整数。相同事务标签的 SQL 语句必须保存于同一文件中。规则三:按语句组首次出现的行号顺序处理,优先放入当前文件;如果放入后超出 split_line 限制,则新建文件。规则四:同文件约束具有传递性。若语句 A 与语句 B 必须同文件,语句 B 与语句 C 必须同文件,则语句 A、B、C 必须在同一文件。约束合并后语句组计数即便超过限制也必须放在同一文件。规则五:SQL 数组为空时返回 0。输入描述输入为一行,包含两个参数。参数一为单个文件限定可保存的最大 SQL 语句行数 split_line。参数二为 SQL 语句数组 sql_text,每个数组成员可能包含多条 SQL 语句,用分号分隔。输出描述输出一个整数,表示 SQL 语句数组按规则拆分后的文件个数。补充说明split_line 取值范围为 1 到 10000,无效值返回 0。sql_text 每行最多 1000 字符,总语句最多 100000 条。事