蒟蒻在别的刷题网站上面过了,听题解区说UVA题行末不能有多余空格,但蒟蒻自以为自己的代码可以不输出行末空格,但还是WA,求救大佬!(帮助必关)
#include<iostream>
using namespace std;
string s, a[1005][185]; //a[i][j]表示第i行第j个单词
int n, maxlen[185], cnt[1005];
//maxlen[j]表示每行第j个单词的最大长度
//cnt[i]表示第i行的单词个数
int main()
{
//第一步:输入第i行,并取出第j个单词,存入a[i][j]中
while(getline(cin, s))
{
n++; //每读入一行,行数+1
int last = 0, len = s.size();
//last表示上一个单词起点的下标
for(int i = 0; i < len; i++)
if(s[i] == ' ')
{
a[n][++cnt[n]] = s.substr(last, i - last);
last = i + 1;
}
a[n][++cnt[n]] = s.substr(last);
}
//第二步:求出每一行第j个单词的最大长度maxlen[j]
for(int i = 1; i <= n; i++)
for(int j = 1; j <= cnt[i]; j++)
maxlen[j] = max(maxlen[j], (int)a[i][j].size());
//第三步:输出第i行第j个单词,并补上maxlen[j]-a[i][j].size()+1个空格
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= cnt[i]-1; j++)
{
cout << a[i][j];
for(int k = 1; k <= maxlen[j]-a[i][j].size()+1; k++)
cout << " ";
}
cout<<a[i][cnt[i]];
cout << '\n';
}
return 0;
}