UVA 1593(Alignment of Code)

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

运行结果:

运行结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java byte code 的学习意义 为啥要学java bytecode,这就跟你问我已经会python了为...
    shanggl阅读 1,728评论 0 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • Run Loops 运行循环是与线程相关联的基础架构的一部分。runloop是一个事件处理循环,你可以使用它来处理...
    曾经那样美阅读 507评论 0 0
  • 本文主要讲了java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的一些线程函数用法、概述等。 首先讲...
    李欣阳阅读 2,517评论 1 15
  • 我不是标题党,绝对不会故弄玄虚,是的,我说的就是货真价实的骗子。在生活里骗钱的人,经济学里搞庞氏骗局的人。 也许你...
    大卫会武术阅读 6,607评论 0 5