UVa 400 (水题) Unix ls
题意:
有n个文件名,排序后按列优先左对齐输出。设最长的文件名的长度为M,则最后一列长度为M,其他列长度为M+2.
分析:
这道题很简单,但要把代码写的精炼,还是要好好考虑一下的。lrj的代码中有两个亮点,一个是print子函数,一个就是行数的计算。用心体会
#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
using namespace std; const int maxl = ;
const int maxn = + ;
string names[maxn]; void print(const string& s, int len, char extra)
{
printf("%s", s.c_str());
for(int i = s.length(); i < len; ++i) putchar(extra);
} int main()
{
//freopen("in.txt", "r", stdin);
int n;
while(scanf("%d", &n) == )
{
int M = ;
for(int i = ; i < n; ++i)
{
cin >> names[i];
M = max(M, (int)names[i].length());
}
sort(names, names + n);
int cols = (maxl - M) / (M + ) + , rows = (n - ) / cols + ;
print("", , '-');
puts("");
for(int r = ; r < rows; ++r)
{
for(int c = ; c < cols; ++c)
{
int index = c * rows + r;
if(index < n) print(names[index], c == cols- ? M : M+, ' ');
}
puts("");
}
} return ;
}
代码君
UVa 400 (水题) Unix ls的更多相关文章
- UVa 1595 (水题) Symmetry
颓废的一个下午,一直在切水题,(ˉ▽ ̄-) 首先如果这些点是对称的话,那么它们的对称轴就是x = m,m是横坐标的平均值. 把这些点放到一个集合里,然后扫描每个点,计算出它关于x = m的对称点,看这 ...
- UVa 10391 (水题 STL) Compound Words
今天下午略感无聊啊,切点水题打发打发时间,=_=|| 把所有字符串插入到一个set中去,然后对于每个字符串S,枚举所有可能的拆分组合S = A + B,看看A和B是否都在set中,是的话说明S就是一个 ...
- UVa 10935 (水题) Throwing cards away I
直接用STL里的queue模拟即可. #include <cstdio> #include <queue> using namespace std; ; int discard ...
- UVa 1593 (水题 STL) Alignment of Code
话说STL的I/O流用的还真不多,就着这道题熟练一下. 用了两个新函数: cout << std::setw(width[j]); 这个是设置输出宽度的,但是默认是在右侧补充空格 所 ...
- UVa 11040 (水题) Add bricks in the wall
题意: 45块石头如图排列,每块石头上的数等于下面支撑它的两数之和,求其余未表示的数. 分析: 首先来计算最下面一行的数,A71 = A81 + A82 = A91 + 2A92 + A93,变形得到 ...
- Square Numbers UVA - 11461(水题)
#include <iostream> #include <cstdio> #include <sstream> #include <cstring> ...
- UVA 400 - Unix ls (Unixls命令)
csdn : https://blog.csdn.net/su_cicada/article/details/86773007 例题5-8 Unixls命令(Unix ls,UVa400) 输入正整数 ...
- UVa 489 HangmanJudge --- 水题
UVa 489 题目大意:计算机给定一个单词让你猜,你猜一个字母,若单词中存在你猜测的字母,则会显示出来,否则算出错, 你最多只能出错7次(第6次错还能继续猜,第7次错就算你失败),另注意猜一个已经猜 ...
- UVa 1339 Ancient Cipher --- 水题
UVa 1339 题目大意:给定两个长度相同且不超过100个字符的字符串,判断能否把其中一个字符串重排后,然后对26个字母一一做一个映射,使得两个字符串相同 解题思路:字母可以重排,那么次序便不重要, ...
随机推荐
- JavaScript 高级程序设计 目录
为什么会写这个学习教程呢??因为一直以来,学习JavaScript都没有系统的学过,用什么学什么,所以今天开始,重新把JavaScript系统的学一遍!(本人也是菜鸟一枚,语文水平也还是小学程度,看得 ...
- WebForm页面运行周期--页面关系
1.前台文件类继承于后台文件类 2.当前台文件中包含某个标签runat= server的时候,asp.net就会在编译这个页面前后台文件类的时候,在后台类中添加一个相应的控件对象:当页面被访问,也就是 ...
- proguardgui.bat来混淆已有的jar包
1.U:\android-sdk\tools\proguard\bin\找到 proguardgui.bat,双击就可以弹出一个混淆的界面 2.加入不要混淆的,比如我们用的系统的,还有别人的jar 3 ...
- PHP - PDO 之 mysql 事务功能
<?php /* pdo 学习 */ $dsn = 'mysql:host=localhost;dbname=cswl';//构建连接dsn $db = new pdo($dsn,'root', ...
- UIImagePickerController拍照与摄像(转)
转载自:http://blog.sina.com.cn/s/blog_68edaff101019ppe.html (2012-11-23 14:38:40) 标签: ios iphone 拍照 摄像 ...
- IntPtr
一:什么是IntPtr 先来看看MSDN上说的:用于表示指针或句柄的平台特定类型.这个其实说出了这样两个事实,IntPtr 可以用来表示指针或句柄.它是一个平台特定类型.对于它的解释,这个哥们写的比较 ...
- linux上很方便的上传下载文件工具rz和sz
linux上很方便的上传下载文件工具rz和sz(本文适合linux入门的朋友) ##########################################################&l ...
- arguments.callee查询调用b函数的是哪个函数
// function functionname(){ // function b(){ // console.log(arguments.callee.caller.name); // } // b ...
- PHP htmlspecialchars() 函数
定义和用法 htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体. 预定义的字符是: & (和号) 成为 & " (双引号) 成为 " ...
- C++调用C#生成的DLL文件的各种问题
C++调用C#生成的DLL文件: 首先选择建立一个C#的类库,然后再按照需求编写需要的函数 之后,对于C++调用过程需要注意的几点: 1.使用#using <....some.dll>指出 ...