题意如下

输入若干行代码,要求各列单词的左边界对齐且尽量靠左。
单词之间至少要空一格。每个单词不超过80个字符,每行不超过180个字符,一共最多1000行。
注意输出时每行的最后一列后面没有空格符。

如图:

详细请看代码

以下 C++代码

#include<vector>
#include<string>
#include<iostream>
#include<algorithm>
#include<sstream>
#include<iomanip>
using namespace std;
#define _for(i,a,b) for(int i = a;i < b ;i++ ) //宏定义
const int MAXN = 1024;
vector<string> LineWords[MAXN];
unsigned long WordLen[MAXN] ,LineCnt;
int main(){string line,word;LineCnt = 0;fill(WordLen,WordLen+MAXN,0); // 将数组某段范围赋值为特定数值 while(getline(cin,line)){ // 将一行数据存入 line 字符串中 stringstream ss(line); // 创建字符串流对象 unsigned long wi = 0; // 该行单词数 while(ss>>word){ // 更新最大单词长度 AND 将单词存入容器中 // word.size() 返回的类型为 size_t 或者 size_type ,故需要数据类型强制转化WordLen[wi] = max(WordLen[wi],(unsigned long)(word.size()));wi ++ ;LineWords[LineCnt].push_back(word);}LineCnt++;}_for(i,0,LineCnt){//取出存储一行所有单词的容器 ,容器中每个元素即为一个单词const vector<string>& ws = LineWords[i];  _for(j,0,ws.size())//setw函数在头文件<iomanip>中,控制输出格式,可填充特定字符,默认为空格 cout<<left<<setw(j<ws.size() ? WordLen[j]+1 : 0)<< ws[j];  cout<<endl; }return 0;
}

显示结果:


参考:算法竞赛入门经典习题与解答 陈锋 编著

ACM Uva1593 代码对齐相关推荐

  1. UVA1593 代码对齐 输入输出控制

    题目大意: 输入若干行代码,要求各列单词的左边界对齐且尽量靠左.单词之间至少要有一个空格.每个单词长度不超过80个字符,每行不超过180个字符,一共最多1000行. 题解: 如何输入若干行带空格的数据 ...

  2. Uva1593 代码对齐

    题目描述:对代码进行对齐,具体形式参看输入输出. 思路: 1. 用getline()读取每一行,再将每一行单词存入一个vector之中 2. 再用一个vector存放每一行的vector 3. 需要找 ...

  3. uva1593代码对齐

    1.题目 输入若干行字符串,每列单词左对齐,单词之间至少空一格.记录每一列的最长长度然后较短的字符串右侧补空格,最后一列不用.记住:文件尾有换行符 2.代码 #include <iostream ...

  4. 21行代码AC——习题5-1 代码对齐(Alignment of Code, UVa1593)——解题报告

    题意: 输入若干行代码,要求各列单词的左边界对齐且尽量靠左,单词之间至少要空一格,每个单词不超过80个字符,每行不超过180个字符,一共最多1000行. 思路: 1.输入内容存入二维数组 2.找出每列 ...

  5. 从文本中提取知识图谱代码比较好的,代码对齐,可以使用的

    从文本中提取知识图谱代码比较好的,代码对齐,可以使用的 https://blog.csdn.net/fendouaini/article/details/102987373 https://blog. ...

  6. QtCreator代码对齐的方法

    对应游标行代码对齐 ctrl + i 划选部分代码对齐 1. 使用鼠标划选代码 2. ctrl + i 当前文件全部代码对齐 1. ctrl + a 2. ctrl + i

  7. netbeans 代码对齐_加快开发速度:NetBeans代码模板,AutoHotKey和Ditto

    netbeans 代码对齐 Writing an application in PHP or any other language is both a rewarding and sometimes ...

  8. VScode 代码对齐快捷键

    vscode代码对齐快捷键,选中要对齐的代码块,windows shift+alt+F Mac Shift + Option + F. 效果如下:

  9. IDE(2)——VS系列(2)——VS中代码对齐等快捷键

    在VS2019中,选定代码后,按Ctrl+K+F组合键,可以自动进行代码对齐. 注意:要先按下Ctrl和K,再按下F,因为Ctrl+F是查找的快捷键. 也可以先按下Ctrl+K,再按下Ctrl+F. ...

最新文章

  1. tensorflow官方文档_开源分享:最好的TensorFlow入门教程
  2. python打开excel表格-如何从python中用excel打开excel工作表?
  3. 如何利用Winsock控件编写自己的Internet程序
  4. JQuery表单验证插件EasyValidator,超级简单易用!
  5. jstl mysql_java – jsp jstl sql与mysql中的奇怪行为
  6. STM32学习第二课:STM32c语言基础2
  7. jmeter录制 过滤_jmeter脚本录制方法:
  8. R语言——双因素方差分析
  9. 基于Android手机近距离感应器的俯卧撑计数器
  10. html arm音频播放器,web页面播放arm格式音频
  11. RuntimeError: Cannot re-initialize CUDA in forked subprocess解决方法之一
  12. go 验证字符串中是否包含中文或英文
  13. ubuntu12.04 显卡 散热
  14. hadoop3.0 启动后输入 jps没有进程
  15. Linux性能观测——dstat命令详解
  16. POJ - 3984+POJ - 3414(BFS+路径记录)
  17. 神经网络结构图如何看懂,神经网络结构图片
  18. 六层电梯西门子S7-200PLC梯形图程序
  19. serializers的应用
  20. 数据库同步软件开发——工作日志

热门文章

  1. 利用Register protocol实现网页调用桌面程序(类似迅雷、QQ等)
  2. 征信体系不完善,G20发布数字化普惠金融新指标
  3. Windows8, 一个半成品的mac模仿者?
  4. 多目标进化算法--多项式变异(PM)
  5. ajax的post请求出现403错误,如何解决Django中ajax发送post请求报403错误CSRF验证失败的问题...
  6. 如何在家通过ssh远程连接实验室电脑
  7. Java Stream API(一)
  8. 普罗米修斯监控服务之-监控携带metric接口的服务
  9. 经典面试题-元组和列表的区别
  10. 周玉材料分析方法第三版pdf_材料分析方法 第3版 习题答案 作者 周玉 模拟试卷一及答案.doc...