码迷,mamicode.com
首页 > 其他好文 > 详细

UVA 1593 Alignment of Code

时间:2020-06-04 13:56:09      阅读:53      评论:0      收藏:0      [点我收藏+]

标签:div   back   etl   line   ack   cin   ems   cstring   之间   

题意:

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

 

#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;
}

 

  

UVA 1593 Alignment of Code

标签:div   back   etl   line   ack   cin   ems   cstring   之间   

原文地址:https://www.cnblogs.com/jaszzz/p/13040773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!