3612. 网址的替换

单测试点时限: 2.0 秒

内存限制: 256 MB

jxtxzzw在准备数据结构题目的时候,做了一张检索表。

编号 名称 难度 来源 出题人 数据结构 算法 题解 备注
1001 线性表插入删除操作 Easy 新题 jxtxzzw 线性表
1002 线性表去重 Hard 新题 jxtxzzw 线性表 某网址
1003 经典的猜数游戏 Super 题库 jxtxzzw 线性表 二分 暂不公开
1004 1004 Medium 题库 jxtxzzw 排序 趣味题,选做

但是突然,jxtxzzw认为应该给题目编号增加超链接才对,也就是点一下题目编号要能够自动跳转到对应的页面。

Markdown语法中超链接的写法是:
[Text](https://sample.com)

所以,上面这张表格对应的第一行源码
| 1001 | 线性表插入删除操作 | Easy | 新题 | jxtxzzw | 线性表 | | | |

在加入了超链接后,对应于
[1001](https://acm.ecnu.edu.cn/contest/76/problem/1001)

同时,jxtxzzw想要直接在URL中显示难度。

(也许是为了方便Spy记录每个难度做题的人数?)

jxtxzzw希望把网址变成

https://acm.ecnu.edu.cn/contest/76/problem/1001?level=Easy

由此,完整的第一行表格是:
| [1001](https://acm.ecnu.edu.cn/contest/76/problem/1001?level=Easy) | 线性表插入删除……

类似地,可以得到表格的剩余部分。

jxtxzzw希望写一个程序来完成这个任务。

输入

若干行。

第1行一定是:

| 编号 | 名称 | 难度 | 来源 | 出题人 | 数据结构 | 算法 | 题解 | 备注 |

第2行一定是:

| ---- | -------- | ---- | ---- | ------ | -------------- | ---------- | ---- | ---- |

后面若干行,直到文件结束,都是每行一条记录,形如:

| 1001 | 线性表插入删除操作 | Easy | 新题 | jxtxzzw | 线性表 | | | |

其中每行:

  • 第1个字段是题目编号。如果这是一个合法的编号,是一个从1001开始的四位数的整数,否则,它根本就不是数字。(即,只要是数字就一定是1001~9999,不可能出现类似0099、12345这样的情况,除非包括其他非数字字符)。

  • 第2个字段是题目名称。是一个字符串,可能是中文、英文、数字、特殊符号,甚至可能包含空格和|

  • 第3个字段是题目的难度。一定是NaiveEasyMediumHardSuper中的一个。

  • 第4个字段是题目的来源。一定是题库新题中的一个。

  • 第5个字段是出题人。是一个字符串,可能是中文、英文、数字、特殊符号,甚至可能包含空格和|

  • 第6、7个字段是知识点标签。可能是中文、英文、数字、特殊符号,甚至可能包含空格和|

  • 第8个字段是题解。可能是一个URL,形如http://sample.com;可能是Markdown语法,形如[Sol](http://sample.com);也可能是一个字符串,可能是中文、英文、数字、特殊符号,甚至可能包含空格和|

  • 第9个字段是备注。是一个字符串,可能是中文、英文、数字、特殊符号,甚至可能包含空格和|

现在需要你对每一行进行如题目要求的处理。

为了方便起见,你只需要完成第1个字段的网址替换。因为后面的字段也是类似的原理(毕竟jxtxzzw知道怎么写出这样的程序,没有必要让你帮他完成。)

具体来说,第一个字段需要你替换成的形式是Markdown语法下的链接,语法格式如题面描述,其中[文字部分]为题目编号,如果题目编号非法,则不做任何替换,(URL部分)是Contest的URL后面跟上题目编号,再以?level=的形式接上难度。

例如给定下表:

编号 名称 难度 来源 出题人 数据结构 算法 题解 备注
1001 冒泡排序 Easy 新题 jxtxzzw 线性表 排序 EOJ 选做题
1002 插入排序 Medium 新题 张三 二叉树 动态规划 www.google.com 趣味题
1003 选择排序 Hard 题库 1016 二分 暂不公开 考试题
1004 快速排序 Super 题库 @#D 数组 并查集 暂不公开 SPJ

对应源码:

| 编号 | 名称 | 难度 | 来源 | 出题人 | 数据结构 | 算法 | 题解 | 备注 |
| ---- | -------- | ---- | ---- | ------ | -------------- | ---------- | ---- | ---- |
| 1001 | 冒泡排序 | Easy | 新题 | jxtxzzw | 线性表 | 排序 | [EOJ](https://acm.ecnu.edu.cn) | 选做题 |
| 1002 | 插入排序 | Medium | 新题 | 张三 | 二叉树 | 动态规划 | www.google.com | 趣味题 |
| 1003 | 选择排序 | Hard | 题库 | 1016 | 图 | 二分 | 暂不公开 | 考试题 |
| 1004 | 快速排序 | Super | 题库 | @#D | 数组 | 并查集 | 暂不公开 | SPJ |

最后应该得到:

编号 名称 难度 来源 出题人 数据结构 算法 题解 备注
1001 冒泡排序 Easy 新题 jxtxzzw 线性表 排序 EOJ 选做题
1002 插入排序 Medium 新题 张三 二叉树 动态规划 www.google.com 趣味题
1003 选择排序 Hard 题库 1016 二分 暂不公开 考试题
1004 快速排序 Super 题库 @#D 数组 并查集 暂不公开 SPJ

对应源码:

| 编号 | 名称 | 难度 | 来源 | 出题人 | 数据结构 | 算法 | 题解 | 备注 |
| ---- | -------- | ---- | ---- | ------ | -------------- | ---------- | ---- | ---- |
| [1001](https://acm.ecnu.edu.cn/contest/76/problem/1001?level=Easy) | 冒泡排序 | Easy | 新题 | jxtxzzw | 线性表 | 排序 | [EOJ](https://acm.ecnu.edu.cn) | 选做题 |
| [1002](https://acm.ecnu.edu.cn/contest/76/problem/1002?level=Medium) | 插入排序 | Medium | 新题 | 张三 | 二叉树 | 动态规划 | www.google.com | 趣味题 |
| [1003](https://acm.ecnu.edu.cn/contest/76/problem/1003?level=Hard) | 选择排序 | Hard | 题库 | 1016 | 图 | 二分 | 暂不公开 | 考试题 |
| [1004](https://acm.ecnu.edu.cn/contest/76/problem/1004?level=Super) | 快速排序 | Super | 题库 | @#D | 数组 | 并查集 | 暂不公开 | SPJ |

注意:

  • 编号如果不是四位数的整数,不做替换。
  • 题目名称、出题人,出现四位数的整数,不做替换。
  • 题目名称可能会出现|
  • 制表符中间的空格保持原样,原来有多少空格还是留多少空格。

输出

输出替换后的检索表源码。

样例

Input
| 编号 | 名称 | 难度 | 来源 | 出题人 | 数据结构 | 算法 | 题解 | 备注 |
| ---- | -------- | ---- | ---- | ------ | -------------- | ---------- | ---- | ---- |
| 1001 | 冒泡排序 | Easy | 新题 | jxtxzzw | 线性表 | 排序 | [EOJ](https://acm.ecnu.edu.cn) | 选做题 |
| 1002 | 插入排序 | Medium | 新题 | 张三 | 二叉树 | 动态规划 | www.google.com | 趣味题 |
| 1003 | 选择排序 | Hard | 题库 | 1016 | 图 | 二分 | 暂不公开 | 考试题 |
| 1004 | 快速排序 | Super | 题库 | @#D | 数组 | 并查集 | 暂不公开 | SPJ |
Output
| 编号 | 名称 | 难度 | 来源 | 出题人 | 数据结构 | 算法 | 题解 | 备注 |
| ---- | -------- | ---- | ---- | ------ | -------------- | ---------- | ---- | ---- |
| [1001](https://acm.ecnu.edu.cn/contest/76/problem/1001?level=Easy) | 冒泡排序 | Easy | 新题 | jxtxzzw | 线性表 | 排序 | [EOJ](https://acm.ecnu.edu.cn) | 选做题 |
| [1002](https://acm.ecnu.edu.cn/contest/76/problem/1002?level=Medium) | 插入排序 | Medium | 新题 | 张三 | 二叉树 | 动态规划 | www.google.com | 趣味题 |
| [1003](https://acm.ecnu.edu.cn/contest/76/problem/1003?level=Hard) | 选择排序 | Hard | 题库 | 1016 | 图 | 二分 | 暂不公开 | 考试题 |
| [1004](https://acm.ecnu.edu.cn/contest/76/problem/1004?level=Super) | 快速排序 | Super | 题库 | @#D | 数组 | 并查集 | 暂不公开 | SPJ |
Input
| 编号 | 名称 | 难度 | 来源 | 出题人 | 数据结构 | 算法 | 题解 | 备注 |
| ---- | -------- | ---- | ---- | ------ | -------------- | ---------- | ---- | ---- |
| 1001 | 1001 | Easy | 新题 | 1001 | | 1001 | | |
| 1002 | 有数字1002的题 | Medium | 新题 | jxtxzzw | | | | |
| 1003 | 有空 格 的 题 | Easy | 新题 | | | | 前后空格一致 | |
| 1234 | 有|的|题||| | Medium | 新题 | | | 多了很多空格 | | Algs-\n |
| 8999 | 名称|Easy|Hard | Super | 新题 | | | |前后空格不一致| |
| XYZ | 不替换 | Easy | 新题 | | | | | |
Output
| 编号 | 名称 | 难度 | 来源 | 出题人 | 数据结构 | 算法 | 题解 | 备注 |
| ---- | -------- | ---- | ---- | ------ | -------------- | ---------- | ---- | ---- |
| [1001](https://acm.ecnu.edu.cn/contest/76/problem/1001?level=Easy) | 1001 | Easy | 新题 | 1001 | | 1001 | | |
| [1002](https://acm.ecnu.edu.cn/contest/76/problem/1002?level=Medium) | 有数字1002的题 | Medium | 新题 | jxtxzzw | | | | |
| [1003](https://acm.ecnu.edu.cn/contest/76/problem/1003?level=Easy) | 有空 格 的 题 | Easy | 新题 | | | | 前后空格一致 | |
| [1234](https://acm.ecnu.edu.cn/contest/76/problem/1234?level=Medium) | 有|的|题||| | Medium | 新题 | | | 多了很多空格 | | Algs-\n |
| [8999](https://acm.ecnu.edu.cn/contest/76/problem/8999?level=Super) | 名称|Easy|Hard | Super | 新题 | | | |前后空格不一致| |
| XYZ | 不替换 | Easy | 新题 | | | | | |

提示

是不是习惯了字符串操作的题都是回文啊、子串啊、倒置啊……

但是现实生活中可不会只有那些算法题,更多的其实是像“GPS数据处理”和“网址的替换”这样的情况,需要你去分析或者处理大段字符串。

虽然繁琐,但是实用。耐心点做,其实一点也不难。按要求慢慢处理就是了。

20 人解决,23 已尝试。

34 份提交通过,共有 213 份提交。

8.3 EMB 奖励。

创建: 5 月,3 周前.

修改: 5 月前.

最后提交: 19 小时前.

来源: 数据结构上机实践课程(2018年秋)

标签