书上具体所有题目:http://pan.baidu.com/s/1hssH0KO


代码:(Accepted,0 ms)

//UVa1593 - Alignment of Code
#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<sstream>
#include<iterator>
#include<iomanip>
using namespace std; vector<string> text[1009];
int num[100] = { 0 }, X = 0;
char line[200]; int main()
{
//freopen("in.txt", "r", stdin);
while (cin.getline(line, 200)) {
istringstream in(line);
istream_iterator<string> fi(in), eof;
int y = 0;
while (fi != eof) {
text[X].push_back(*fi);
num[y] = max(num[y], (int)fi->size());
++y, ++fi;
}
++X;
}
for (int i = 0;i < X;++i) {
int t = text[i].size() - 1;
for (int j = 0;j < t;++j)
cout << left << setw(num[j] + 1) << text[i][j];
cout << *(text[i].rbegin()) << '\n';
}
return 0;
}

题意:把很多行的单词排整齐。本来每一行中的各个单词之间含有随机个空格或tab,现在要求每一列单词左对齐。很好懂。


分析:思路很简单:找出每一列单词的最大字母数,再根据此输出即可。紫书也说了,这章不难,主要练习一下STL。之前我抱着C++ Primer也啃了很久,那这章就把之前学到的不管是不是很偏的东西尽量都用上吧。

读取文件不仅用了<sstream>,而且用了头文件iterator,用了流迭代器。其实流迭代器这里并没有什么优势,直接用流读入就行。我只是练习一下。(因为对流还能有迭代器感觉很神奇)

对于头文件<algorithm>,用到了max函数。其实在这里的情况下并没有很划算。就是 a=max(a,b);的情况。直接if (a < b) a = b;更好,这样还省掉一些赋值。

输出直接用了头文件<iomanip>里的setw对齐,left左对齐,方便的很!

[刷题]算法竞赛入门经典(第2版) 5-1/UVa1593 - Alignment of Code的更多相关文章

  1. [刷题]算法竞赛入门经典(第2版) 4-6/UVa508 - Morse Mismatches

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,10 ms) //UVa508 - Morse Mismatches #include< ...

  2. [刷题]算法竞赛入门经典(第2版) 5-15/UVa12333 - Revenge of Fibonacci

    题意:在前100000个Fibonacci(以下简称F)数字里,能否在这100000个F里找出以某些数字作为开头的F.要求找出下标最小的.没找到输出-1. 代码:(Accepted,0.250s) / ...

  3. [刷题]算法竞赛入门经典(第2版) 5-13/UVa822 - Queue and A

    题意:模拟客服MM,一共有N种话题,每个客服MM支持处理其中的i个(i < N),处理的话题还有优先级.为了简化流程方便出题,设每个话题都是每隔m分钟来咨询一次.现知道每个话题前来咨询的时间.间 ...

  4. [刷题]算法竞赛入门经典(第2版) 4-5/UVa1590 - IP Networks

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,0 ms) //UVa1590 - IP Networks #include<iost ...

  5. [刷题]算法竞赛入门经典(第2版) 6-7/UVa804 - Petri Net Simulation

    题意:模拟Petri网的执行.虽然没听说过Petri网,但是题目描述的很清晰. 代码:(Accepted,0.210s) //UVa804 - Petri Net Simulation //Accep ...

  6. [刷题]算法竞赛入门经典(第2版) 6-6/UVa12166 - Equilibrium Mobile

    题意:二叉树代表使得平衡天平,修改最少值使之平衡. 代码:(Accepted,0.030s) //UVa12166 - Equilibrium Mobile //Accepted 0.030s //# ...

  7. [刷题]算法竞赛入门经典(第2版) 6-1/UVa673 6-2/UVa712 6-3/UVa536

    这三题比较简单,只放代码了. 题目:6-1 UVa673 - Parentheses Balance //UVa673 - Parentheses Balance //Accepted 0.000s ...

  8. [刷题]算法竞赛入门经典(第2版) 5-16/UVa212 - Use of Hospital Facilities

    题意:模拟患者做手术. 其条件为:医院有Nop个手术室.准备手术室要Mop分钟,另有Nre个恢复用的床.准备每张床要Mre分钟,早上Ts点整医院开张,从手术室手术完毕转移到回复床要Mtr分钟.现在医院 ...

  9. [刷题]算法竞赛入门经典(第2版) 5-11/UVa12504 - Updating a Dictionary

    题意:对比新老字典的区别:内容多了.少了还是修改了. 代码:(Accepted,0.000s) //UVa12504 - Updating a Dictionary //#define _XieNao ...

  10. [刷题]算法竞赛入门经典(第2版) 5-10/UVa1597 - Searching the Web

    题意:不难理解,照搬题意的解法. 代码:(Accepted,0.190s) //UVa1597 - Searching the Web //#define _XIENAOBAN_ #include&l ...

随机推荐

  1. WEB开发性能优化--核心定义介绍篇(1)

    推荐理由 随着 互联网的蓬勃发展,并且伴随着产品功能的越来越复杂,对于技术人员来说最大的挑战就是如何在保证业务快速发展的同时,也可保证不断复杂的业务对用户体验的影响,其中对用户来说最重要的体验指标是如 ...

  2. javascript中replace使用总结

    ECMAScript提供了replace()方法.这个方法接收两个参数,第一个参数可以是一个RegExp对象或者一个字符串,第二个参数可以是一个字符串或者一个函数.现在我们来详细讲解可能出现的几种情况 ...

  3. JS——操作内容、操作相关元素

    操作内容:普通元素.innerHTML = "值": 会把标记执行渲染普通元素.innerText = "值": 将值原封不动的展示出来,即使里面有标记 var ...

  4. 手机自动化测试:appium源码分析之bootstrap三

    手机自动化测试:appium源码分析之bootstrap三   研究bootstrap源码,我们可以通过代码的结构,可以看出来appium的扩展思路和实现方式,从中可以添加我们自己要的功能,针对app ...

  5. Combination Sum系列问题

    主要使用方法是backtracking. Combination Sum Given a set of candidate numbers (C) and a target number (T), f ...

  6. jQ伪类选择器

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  7. ajax 大洋与小样的第二步

    一.Ajax的对象 XMLHttpRequest的方法 方法 描述 abort() 停止当前请求 getAllResponseHeaders() 把 HTTP请求的所有响应首部作为健/值对返回 get ...

  8. 1px 究竟是多大

    一.引言 1px 究竟是多大?这应该是一道很不错的面试题.且看: 1.iphone6s 的分辨率是1920px * 1080px 2.iphone6s 全屏截图文件的尺寸是1242px * 2208p ...

  9. web 项目中a标签传值(中文)到后台的乱码问题

    web 项目中a标签传值(中文)到后台的乱码问题 jsp页面中的a标签: .............. <c:forEach items="${sellerList }" v ...

  10. 关于ajax post请求,参数过大产生的问题解决 Java

    之前做了一个图片上传的功能,前端是把图片编码成BASE64,但是图片一大了,后台用request.getParameter("前端参数");来接收参数打印不出来,没有值,这就很尴尬 ...