SP21092 FRMT - DRAW TABLE
题目描述
给定一个由表格元素构成的描述,要求绘制对应的表格。
输入由一个或多个表格描述组成,以一个以 `*` 开头的行作为输入结束标志。每个描述都从包含一个或多个字符的标题行开始,这些字符定义了表格中列的数量和对齐方式。标题行中的字符可以是 ``,分别表示左对齐、居中对齐和右对齐。接下来的内容是至少两行、最多 21 行的数据行,每行按顺序包括各个列的条目,条目之间用 `&` 进行分隔。数据行的第一行作为列标题,其余行作为数据填充。条目内可以包含空格,但不能在开头或结尾出现。字符 ``、`&` 和 `*` 除了在特定用途情况下不会出现在其它地方。
输出时,请按照示例中的格式呈现表格,需注意以下几点:
- 每个表格的总宽度不会超过 79 个字符(不包含行末换行符)。
- 用破折号 (`-`) 而非下划线 (`_`) 画横线。「@」出现在四个角,加号 (`+`) 在分隔标题和数据区的横线内产生交汇。
- 每个列中最长的条目与竖线(`|`)之间必须有一个空格。
- 针对居中的条目,如无法正好居中,则稍多的空格应放在条目的右侧。
确保所有输入和输出满足上述要求,并且输出可包含连续的空格符。行首和行尾不出现空格,且只使用空格,不能用制表符。
#### 示例输入
```
=>
TITLE&VERSION&OPERATING SYSTEM&PRICE
Slug Farm&2.0&FreeBSD&49.99
Figs of Doom&1.7&Linux&9.98
Smiley Goes to Happy Town&11.0&Windows&129.25
Wheelbarrow Motocross&1.0&BeOS&34.97
>
What is the answer?
42
Tweedledum&Tweedledee
"Knock, knock."&"Who's there?"
"Boo."&"Boo who?"
"Don't cry, it's only me."&(groan)
*
```
#### 示例输出
```
@-----------------------------------------------------------------@
| TITLE | VERSION | OPERATING SYSTEM | PRICE |
|---------------------------+---------+------------------+--------|
| Slug Farm | 2.0 | FreeBSD | 49.99 |
| Figs of Doom | 1.7 | Linux | 9.98 |
| Smiley Goes to Happy Town | 11.0 | Windows | 129.25 |
| Wheelbarrow Motocross | 1.0 | BeOS | 34.97 |
@-----------------------------------------------------------------@
@---------------------@
| What is the answer? |
|---------------------|
| 42 |
@---------------------@
@---------------------------------------------@
| Tweedledum | Tweedledee |
|----------------------------+----------------|
| "Knock, knock." | "Who's there?" |
| "Boo." | "Boo who?" |
| "Don't cry, it's only me." | (groan) |
@---------------------------------------------@
```
**本翻译由 AI 自动生成**
输入格式
无
输出格式
无