UVA 1593(Alignment of Code)

weixin_34146805發表於2016-05-13
1521354-0af038691aa035f3.Jpeg
UVA 1593
#include <iostream>
#include <algorithm>
#include <sstream>
#include <vector>
#include <string>
#include <map>

using namespace std;

int main()
{
    vector < vector<string> > txt;//所有的輸入
    string hang,word;//每一行的字母,單個字母
    int col=0, row = 0;//row 輸入的行數數
    map<int, int> column;//每列的最長單詞長度

    //把輸入的文字儲存到txt,對於所有的列,找出該列最長的單詞的長度
    while ( getline(cin,hang) )
    {
        stringstream hangin(hang);
        vector <string> temprow;//臨時行
        int now=1;//標識讀到當前是改行第幾個單詞(處於第幾列)
        while (hangin>>word)
        {
            temprow.push_back(word);
            column[now] = max(column[now], (int)word.size());
            now++;
        }
        txt.push_back(temprow);
    }
    //輸出答案
    for (int i = 0; i < txt.size(); i++)
    {
        for (int j = 0; j < txt[i].size(); j++)
        {
            cout << txt[i][j];
            for (int k = column[j+1]- txt[i][j].size();k>=0; k--)
            {
                cout << ' ';
            }
            cout << ' ';
        }
        cout << '\n';
    }
    system("pause");
    return 0;
    
}

執行結果:

1521354-8b376952207ba4c9.png
執行結果

相關文章