Skip to content

11302: 【原1302】缩进格式

题目

题目描述

author: Jiarui Zhang 原OJ链接:https://acm.sjtu.edu.cn/OnlineJudge-old/problem/1302 

Description

小z想和小y愉快的玩耍,但是小y在写程序。程序写好了,但是小y怎么调试也过不了。小z帮小y看了一下就不想看了,因为小y虽然是萌妹子,但是她的程序缩进实在是不忍直视。于是小z决定帮她纠正。

程序里的每一行语句分为单词和空格,ASCII码从33到126的一段连续字符串是单词,而单词之间由ASCII码为32的空格分开。小z的缩进方法具体来说是这样:对于每一行的第 \( i \) 个单词,它的第一个字符的位置不能小于其它每一行的第 \( 1 \) 至第 \( i-1 \) 个单词,且每个单词的位置要尽量靠前。例如,一段代码:

__start:__integer;____//_begins_here
stop:_integer;_//__ends_here__
_s:__string;___
c:___char;_//_temp_

经过小z的缩进方法,就变成了下面这样:

start:_integer;_//_begins_here
stop:__integer;_//_ends___here
s:_____string;
c:_____char;____//_temp

为了方便大家阅读,这里的下划线代表空格。当然要注意的是,实际上你的程序处理下划线的时候还是要将它作为单词的一部分处理。

为了能早点和小y出去玩,小z决定弄一个程序来帮助小y。当然,这个任务就交给你了。

Input Format

输入数据的第一行是一个整数 \( T(T \leq 15) \) ,表示测试数据数目。随后包含 \( T \) 个测试数据。每个测试数据包含若干行,每一行至少包括一个单词,单词的长度不超过80,且单词间用若干个空格来隔开。每一行都可能有前缀空格和后缀空格。每一行的长度不超过180。一个测试数据的结尾用一行单独的@字符来表示。

Output Format

对于每个测试数据,你应该输出同等于这个测试数据的行数行。

Sample Input

1
  start:  integer;    // begins here
stop: integer; //  ends here  
 s:  string;   
c:   char; // temp 
@

Sample Output

start: integer; // begins here
stop:  integer; // ends   here
s:     string;
c:     char     // temp

Hint

由于出题人很讨厌炸分的行为,所以本题只有一个测试数据。

Oops! 本题目还没有解答!

助教老师们编题的速度,已经超过了解题的速度!

OJ翻了一新,但本解答集还大多用的是2017-2019级,甚至更早的同学们贡献的答案。

如果你已经AC了,可以的话,请您参考添加页面,与大家一起分享你的题解!