#P1441. Table
Table
描述
许多文本编辑器允许我们使用伪图形字符创建表格,但不允许编辑它们。也就是说,在修改单元格中的文本后,必须手动重新对齐表格的行和列标记。你需要实现一个编辑器模块,用于自动对齐表格。
表格是一个被垂直和水平线分割成单元格的矩形,这些线条连接其边界。垂直和水平标记以及矩形本身由图1中的伪图形字符组成。
表格单元格中的文本可以占据多行。文本不包含控制字符和伪图形字符。
在编辑表格时,单元格的文本会被修改,导致字符可能向左或向右移动。表格的行数、列数以及每个单元格中的行数不会改变。
在对齐后的表格中,每个单元格的每一行文本应与垂直标记之间恰好有一个左空格,且右侧至少有一个右空格。所有单词之间的空格是有效的。只允许以下操作:
- 修改单元格行中前导和尾随空格的数量;
- 在水平表格标记中添加或删除字符“--”(ASCII 196)。
表格不包含空列,即每一列至少包含一个具有非空文本的单元格。
要求对给定的表格进行格式化,使其宽度(表格行的长度)最小化。
输入
输入包含一个编辑后的表格。它不超过100行,每行长度不超过255个字符。行本身不包含前导或尾随空格。输入中不包含空行。
输出
输出对齐后的表格。输出行不应包含前导或尾随空格。输出中不应包含空行。输入保证格式化后的表格宽度不超过255个字符。
输入数据 1
┌───────┬───────────────────────┬──────────────────────────────────────┐
│ Name │ Organization │ JOB │
├───────┼───────────────────────┼──────────────────────────────────────┤
│Bill Clinton│ USA │ The President of the United States │
├───────┼───────────────────────┼──────────────────────────────────────┤
│Bill Gates│Microsoft Corporation │ President │
├───────┼───────────────────────┼──────────────────────────────────────┤
│ Bill Poucher │ A C M │ International Collegiate Programming │
│ │ │ Contest Director │
└───────┴───────────────────────┴──────────────────────────────────────┘
输出数据 1
┌──────────────┬───────────────────────┬──────────────────────────────────────┐
│ Name │ Organization │ JOB │
├──────────────┼───────────────────────┼──────────────────────────────────────┤
│ Bill Clinton │ USA │ The President of the United States │
├──────────────┼───────────────────────┼──────────────────────────────────────┤
│ Bill Gates │ Microsoft Corporation │ President │
├──────────────┼───────────────────────┼──────────────────────────────────────┤
│ Bill Poucher │ A C M │ International Collegiate Programming │
│ │ │ Contest Director │
└──────────────┴───────────────────────┴──────────────────────────────────────┘
来源
Northeastern Europe 1996