Uva1593 代码对齐
题目描述:对代码进行对齐,具体形式参看输入输出。
思路:
1. 用getline()读取每一行,再将每一行单词存入一个vector之中
2. 再用一个vector存放每一行的vector
3. 需要找的是每一行对应位置(pi)的单词的最大长度,其它行对应的单词都是按这个最大长度来对齐(填充空格)。找到这个最大长度,减去前一个单词的长度,就是在输出当前单词时需要先填充的空格个数。
代码:
1 #include <vector> 2 #include <set> 3 #include <string> 4 #include <sstream> 5 #include <iostream> 6 7 using namespace std; 8 9 int main() 10 { 11 //freopen("in.txt","r", stdin); 12 //freopen("out.txt","w",stdout); 13 string s; 14 vector<vector<string> > allword; 15 vector<int> pos; //每行第i个单词的起始位置(相对于前一个单词) 16 pos.push_back(0); 17 while(getline(cin, s)){ 18 string word; 19 vector<string> wvec; //存放每一行的单词 20 int cnt = 0; 21 stringstream ss(s); 22 while(ss >> word){ 23 wvec.push_back(word); 24 cnt++; 25 if(cnt > 1 && cnt > pos.size()) pos.push_back(word.size() + 1); //在存入单词的同时就考虑每个单词大小, 26 else if(word.size() + 1 > pos[cnt]) pos[cnt] = word.size() + 1; //找到每行第i位置上最大单词长度是多少 27 } 28 allword.push_back(wvec); 29 } 30 for(int i = 0; i < allword.size(); ++i){ 31 printf("%s", allword[i][0].c_str()); //第1个单词 32 for(int j = 1; j < allword[i].size(); ++j){ 33 for(int k = 0; k < pos[j] - allword[i][j-1].size() ; ++k) printf(" "); //在打印单词前输出若干空格 34 printf("%s", allword[i][j].c_str()); 35 } 36 printf("\n"); 37 } 38 }
转载于:https://www.cnblogs.com/patrolli/p/11228099.html
Uva1593 代码对齐相关推荐
- UVA1593 代码对齐 输入输出控制
题目大意: 输入若干行代码,要求各列单词的左边界对齐且尽量靠左.单词之间至少要有一个空格.每个单词长度不超过80个字符,每行不超过180个字符,一共最多1000行. 题解: 如何输入若干行带空格的数据 ...
- uva1593代码对齐
1.题目 输入若干行字符串,每列单词左对齐,单词之间至少空一格.记录每一列的最长长度然后较短的字符串右侧补空格,最后一列不用.记住:文件尾有换行符 2.代码 #include <iostream ...
- ACM Uva1593 代码对齐
题意如下 输入若干行代码,要求各列单词的左边界对齐且尽量靠左. 单词之间至少要空一格.每个单词不超过80个字符,每行不超过180个字符,一共最多1000行. 注意输出时每行的最后一列后面没有空格符. ...
- 21行代码AC——习题5-1 代码对齐(Alignment of Code, UVa1593)——解题报告
题意: 输入若干行代码,要求各列单词的左边界对齐且尽量靠左,单词之间至少要空一格,每个单词不超过80个字符,每行不超过180个字符,一共最多1000行. 思路: 1.输入内容存入二维数组 2.找出每列 ...
- 从文本中提取知识图谱代码比较好的,代码对齐,可以使用的
从文本中提取知识图谱代码比较好的,代码对齐,可以使用的 https://blog.csdn.net/fendouaini/article/details/102987373 https://blog. ...
- QtCreator代码对齐的方法
对应游标行代码对齐 ctrl + i 划选部分代码对齐 1. 使用鼠标划选代码 2. ctrl + i 当前文件全部代码对齐 1. ctrl + a 2. ctrl + i
- netbeans 代码对齐_加快开发速度:NetBeans代码模板,AutoHotKey和Ditto
netbeans 代码对齐 Writing an application in PHP or any other language is both a rewarding and sometimes ...
- VScode 代码对齐快捷键
vscode代码对齐快捷键,选中要对齐的代码块,windows shift+alt+F Mac Shift + Option + F. 效果如下:
- IDE(2)——VS系列(2)——VS中代码对齐等快捷键
在VS2019中,选定代码后,按Ctrl+K+F组合键,可以自动进行代码对齐. 注意:要先按下Ctrl和K,再按下F,因为Ctrl+F是查找的快捷键. 也可以先按下Ctrl+K,再按下Ctrl+F. ...
最新文章
- 禁用Intel ME
- ONOS系统架构演进,实现高可用性解决方案
- sql 如何根据月份查询数据总数_什么是慢查询?如何通过慢查询日志优化?
- Codeforces Round #371 (Div. 2) C. Sonya and Queries —— 二进制压缩
- python预测控制_无人驾驶——4.控制之MPC模型预测控制
- Python os模块文件操作(二)
- react 嵌套渲染_React-Router v5 中文翻译之快速开始
- 在Linux系统中 测试DNS,Linux系统中dns服务器网络设置及测试
- 关于 IBM Tivoli Storage Manager在Oracle中的应用
- 嵌入式平台WIFI AP模式测试
- eXo Platform 3.0访谈
- 网络编程之什么是计算机网络
- 百度无线音乐盒刷打印服务器,百度无线音乐盒固件
- 计算机地图制图的优势,计算机地图制图
- Python---元祖、循环
- Unity Shader 皮肤水滴效果
- 微擎mysql和redis_微擎如何开启redis,redis开启方法详解
- 四川省房产测绘实施细则[2010版]-4
- 【深度解刨C语言】符号篇(全)
- git与repo区别?
热门文章
- cmd xcopy进行远程复制
- spring security自定义指南
- 千兆宽带:是为了速度而提升速度吗?
- Google推出开源空间音频编码引擎Songbird
- ORACLE时间函数(SYSDATE)深入理解
- Linq之select子句
- Android 使用Toolbar+DrawerLayout快速实现仿“知乎APP”侧滑导航效果
- delphi清理编译过程文件(*.dcu),以及垃圾文件*.~*
- Python的if __name__ == ‘__main__‘:的作用
- python导入模块的三种方法,例子: import numpy和from numpy import * (import matplotlib 和 from matplotlib import *)