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 自动生成**

输入格式

输出格式