【链接】 我是链接,点我呀:)
【题意】
【题解】
模拟题,每一列都选最长的那个字符串,然后后面加一个空格就好。 这个作为场宽。 模拟输出就好。【代码】
#include <bits/stdc++.h>
using namespace std;
const int N = 1000;
const int M = 200;
string ss;
vector <string> s[N+10];
int pre[M],lie[M],start[M];
void out(int len, int used)
{
for (int j = 0; j < len - used; j++) putchar(' ');
}
int main()
{
//freopen("F:\rush.txt", "r", stdin);
int row = 0;
while (getline(cin, ss))
{
stringstream ts(ss);
string temp;
while (ts >> temp) {
s[row].push_back(temp);
lie[(int)s[row].size() - 1] = max(lie[(int)s[row].size() - 1], (int)temp.size());
}
row++;
}
start[0] = 0;
for (int j = 1; j < M && lie[j] != 0; j++) start[j] = start[j-1] + lie[j - 1] + 1;
for (int i = 0; i < row; i++)
{
cout << s[i][0];
for (int j = 1; j < (int)s[i].size(); j++)
{
out(start[j]-start[j-1],(int)s[i][j-1].size());
cout << s[i][j];
}
cout << endl;
}
return 0;
}