UVA 1593 Alignment of Code

题意:

给出若干行字符串和 空格,输出:
开头,结尾都没有空格;每一行 两个字符串之间最少有一个空格,每一列字符串 左对齐。

 

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring> // for memset
#include <vector> // vector<int>().swap(v);
#include <set> // multiset set<int,greater<int>> //big->small
#include <map>
#include <stack> // top()
#include <queue> // front() // priority_queue<T,vector<T>,greater<T> >
#include <cmath> // auto &Name : STLName  Name.
#include <utility>
#include <sstream>
#include <string> // __builtin_popcount (ans); // 获取某个数二进制位1的个数
#include <iomanip> 
#include <cstdlib> // rand()

#define IOS ios_base::sync_with_stdio(0); cin.tie(0)
#define lowbit(x) (x&(-x))
using namespace std;
typedef long long ll;

const double PI=acos(-1.0);
const int INF = 0x3f3f3f3f;
const int MAX_N = 1e3 + 400;
const int MOD = 1000000007;

string s,st;
vector<string> lines[MAX_N];
int row=0;
int maxcol[MAX_N];

int main(void)
{
    while (getline(cin ,s)) {
        stringstream input(s);
        while (input >>st) { // 空格分割
            maxcol[lines[row].size()] = max(maxcol[lines[row].size()], (int)st.size()); 
            lines[row].push_back(st); // 保存单词
        }
        row ++;
    }
    for (int i = 0; i < row; i ++) {
        for (int j = 0; j < lines[i].size(); j ++) {
            st = lines[i][j]; 
            if (j != lines[i].size()-1) st += string(maxcol[j]-st.size()+1, ' '); // 补空格
            printf("%s", st.c_str());
        }
        puts("");
    }

    return 0;
}

 

  

上一篇:delphi RTTI 反射技术(转自朝闻道博客)


下一篇:Delphi XE----Rtti单元一(TRttiContext)