UVA

来源:互联网 发布:吉他谱有什么软件 编辑:程序博客网 时间:2024/06/05 21:00
/*  这题的收获 or 技巧 or 注意点 or 说明  1. getline函数读取整行    2. 流输入stringstream    3. string的size函数、length函数的返回类型都是size_type类型,在使用返回值之前,务必先进行强制类型转换    4. 此题有个坑点,每行的最后一列的单词,后面是没有空行的,直接回车,因此,要将最后一列的输出单独拿出来处理,而其他的就可以一起在循环里输出了  5. 这题可以运用C++输入输出的格式控制,不过也可以不用,直接循环输出也行,solve()1和solve2()函数任意调用一个,都可AC*/



#include <bits/stdc++.h>using namespace std;const int maxn = 1005;const int maxm = 200;vector<string> a[maxn];int len[maxm];int row, col;void solve1();void solve2();int main(){string s, str;row = col = 0;while (getline(cin, str)){stringstream ss(str);while (ss >> s){len[col] = max(len[col], (int)s.size());a[row].push_back(s);col++;}row++; col = 0;}//solve1();solve2();return 0;}void solve1(){int i, j;cout << setiosflags(ios::left);for (i = 0; i < row; i++){for (j = 0; j < (int)a[i].size() - 1; j++)cout << setw(len[j] + 1) << a[i][j];cout << a[i][j] << endl;}}void solve2(){int i, j, k;for (i = 0; i < row; i++){for (j = 0; j < (int)a[i].size() - 1; j++){for ( k = 0; k < (int)a[i][j].size(); k++)cout << a[i][j][k];for (k = 0; k <= len[j] - (int)a[i][j].size(); k++)cout << ' ';}cout << a[i][j] << endl;}}