小灶第一次题解
2016-03-11 20:44
281 查看
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=66858#problem
题意大概是输入不一定多少个单词,不一定多少行,让他们左对齐而且单词之间的距离最小。
找出每一列的最大长度。。一道题卡了一天,很水虽然,但是这个点想不到我真的做不了,因为不定量,不定长,所以只能用vector做才比较好,想清楚之后,又想不出来怎么才能找到一列中最长的,看了别人的代码。
while(getline(cin,code))
{
stringstream tran(code); //创建一个“字符串流”——tran,接下来只需要像读取cin那样读取tran即可!
while(tran>>te)
{
max_len[col]=max(max_len[col],(int)te.size());//比较长度取大值。
col++;
txt[row].push_back(te);//将每一个单词存进容器里面!
}
row++,col=0;
}
每一行输入后更新每一列的长度,就是这么简单,col每次循环归零这一点很重要,也是我一直没有想到的地方。数组经常可以实现一些不断更新数据的方法做不到的事情,有时候更贴近自己的思维。
希望自己以后思维能活跃一点吧。
附上代码
题意大概是输入不一定多少个单词,不一定多少行,让他们左对齐而且单词之间的距离最小。
找出每一列的最大长度。。一道题卡了一天,很水虽然,但是这个点想不到我真的做不了,因为不定量,不定长,所以只能用vector做才比较好,想清楚之后,又想不出来怎么才能找到一列中最长的,看了别人的代码。
while(getline(cin,code))
{
stringstream tran(code); //创建一个“字符串流”——tran,接下来只需要像读取cin那样读取tran即可!
while(tran>>te)
{
max_len[col]=max(max_len[col],(int)te.size());//比较长度取大值。
col++;
txt[row].push_back(te);//将每一个单词存进容器里面!
}
row++,col=0;
}
每一行输入后更新每一列的长度,就是这么简单,col每次循环归零这一点很重要,也是我一直没有想到的地方。数组经常可以实现一些不断更新数据的方法做不到的事情,有时候更贴近自己的思维。
希望自己以后思维能活跃一点吧。
附上代码
#include<sstream> #include<string> #include<vector> #include <cstdio> #include <iostream> using namespace std; vector<string> txt[1314]; string code,te; int max_len[250];//将每一列中最长的单词的长度保存下来,以便保证格式! void print(string s,int len) {//格式化输出! for(int i=0; i<s.size(); i++) cout<<s[i]; for(int i=0; i<=len-s.size(); i++) cout<<' '; //cout<<'*'; } int main() { int col=0,row=0;//代码行数,col表示每一行的“单词”个数! while(getline(cin,code)) { stringstream tran(code);//创建一个“字符串流”——tran,接下来只需要像读取cin那样读取tran即可! while(tran>>te) { max_len[col]=max(max_len[col],(int)te.size());//比较长度取大值。 col++; txt[row].push_back(te);//将每一个单词存进容器里面! } row++,col=0; } for(int i=0; i<row; i++) { int j=0; for(; j<txt[i].size()-1; j++) print(txt[i][j],max_len[j]); cout<<txt[i][j]<<endl;//每行的最后一列是不用输出空格的! } return 0; }
相关文章推荐
- Leetcode018 4Sum
- python3 字符串属性(三)
- js中利用call和apply的应用--继承
- linux初步学习之用户和用户组及权限管理浅谈
- HDU 1260
- POJ 3694 Network (tarjan + LCA)
- [转]与中国K12主流教育相悖,自适应学习如何突破?
- HDOJ1175 连连看
- Windows下编译ffmpeg库过程
- 【面试】get和post的区别
- cocos studio 打包 ;external NDK_TOOLCHAIN_VERSION=4.9' 执行命令出错,返回值:2。
- 无住生心
- 隐性改变display类型
- poj 1067 取石子游戏
- hdu1879(最小生成树)
- 【高精度】【高精度四则运算模板】高精度除法
- 国外程序员整理的 C++ 资源大全
- Android 之 资源文件的介绍及使用
- [转载]2016年高考二轮复习备考文化常识100题及答案详解
- [转载]2016年高考二轮复习备考文化常识100题及答案详解