uva1593 Alignment of Code 习题5-1 战胜心魔觅自我!

UVA1593 算法竞赛入门经典(第二版)第五章STL 习题5-1 代码对齐


题目:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4468


说明:由于没学C++,STL这块也一直不会,半个月前就不敢做STL的题,这半个多月学习了一下栈、链表、map、string、vector、set等等,终于做了一下,AC了。


#include<stdio.h>
#include<iostream>
#include<vector>
#include<string>
#include<sstream>
using namespace std;
int main(){
    string s,buf;
    vector<string> p[1100];
    int maxn[1220]={0};//maxn数组代表每行的第i个单词最大的长度
    int line=0;//line代表第几行
    while(getline(cin,s)){
        stringstream ss(s);
        int i=0;//i代表第几个单词
        while(ss>>buf){
            p[line].push_back(buf);
            if(buf.length()>maxn[i])
                maxn[i]=buf.length();
            i++;
        }
        line++;
        //if(s=="0") break;//用于本地测试
    }
    for(int k=0;k<line;k++){
        int flag=1;
        for(int i=0;i<p[k].size();i++){
            if(flag) flag=0;else cout <<" ";//输出俩个单词间的空格
            cout<<p[k][i];

            if(i+1!=p[k].size())//每行尾部不能有空格,WA了一次
                for(int j=0;j<maxn[i]-p[k][i].length();j++)
                    cout<<" ";
        }
        cout <<"\n";
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值