命令行中有一个列目录的程序,可以按照指定的方式将目录中的文件罗列出来。小A想进一步改进列表程序,希望在给定的显示宽度限制下用最少的行格式化输出所有的文件名,且排在前面的行尽可能满列。 显示规则为:文件列表按字典序左对齐的方式显示为若干列,列宽由所有文件名的最大长度确定,列间用2个空格分割,最后一列后无空格。 输入 输入数据有若干组,每组为待罗列的文件名列表,格式如下: 每组的第一行为空格分隔的两个整数 � , � ( 0 < � ≤ � ) n,w(0<n≤w),分别为该组文件的数量和一行能够显示的宽度。随后的 � n行中,每行为一个文件名,保证每个文件名最长不超过指定的显示宽度。 输出 对每组输入,先根据要求的宽度输出对应个-,随后按要求输出若干列格式化的文件名列表,所有列表中文件名自上而下、从左到右按字典序排列。 示例输入 见样例 示例输出 见样例 No. Test Input Test Output Time limitation Memory limitation Test Case 1 View plain 20 60↵ a↵ b↵ c↵ d↵ e↵ f↵ g↵ h↵ i↵ j↵ k↵ l↵ m↵ n↵ o↵ p↵ q↵ r↵ s↵ t↵ 10 10↵ a↵ b↵ c↵ d↵ e↵ f↵ g↵ h↵ i↵ j↵ ↵ View plain ------------------------------------------------------------↵ a b c d e f g h i j k l m n o p q r s t↵ ----------↵ a d g i↵ b e h j↵ c f↵
时间: 2023-08-15 07:47:33 浏览: 223
这道题目是一道比较经典的贪心题目,具体思路如下:
1. 首先读入输入,获取行宽和文件列表。
2. 对于文件列表进行排序。
3. 计算出一行最多可以放几个文件,即 $num = \lfloor \frac{w+2}{maxlen+2} \rfloor$。
4. 计算出需要多少行,即 $row = \lceil \frac{n}{num} \rceil$。
5. 对于每一行,都输出 $num$ 个文件名,如果最后一行不足 $num$ 个文件,则补充空格。
6. 输出完所有行之后,输出一行分隔符。
参考代码如下:
相关问题
罗列一些库出来见附件,并选用一到二个库,编写程序来解决生活中的实际问题。
一些常用的Python库包括:
1. NumPy:用于高性能科学计算和数据分析,提供了多维数组对象和各种派生对象(如掩码数组和矩阵)以及线性代数、傅里叶变换和随机数生成等功能。
2. Pandas:提供了用于数据处理和数据分析的数据结构和函数,能够快速处理结构化数据。
3. Matplotlib:用于绘制各种静态、动态、交互式的图表,包括线图、散点图、等高线图、条形图等。
4. Scikit-learn:用于机器学习的Python库,提供了包括分类、回归、聚类、降维等多种算法。
5. TensorFlow:用于机器学习和深度学习的框架,提供了多种神经网络模型和算法以及优化器和工具等。
6. Keras:基于TensorFlow、Theano和CNTK等框架的高层神经网络API,能够快速搭建和训练深度学习模型。
下面以NumPy为例,编写程序来解决生活中的实际问题。
问题:有一组学生的成绩数据,需要计算平均分、最高分和最低分。
```python
import numpy as np
# 成绩数据(科目1、科目2、科目3)
scores = np.array([[85, 76, 90],
[65, 78, 92],
[78, 89, 87],
[79, 75, 80],
[82, 87, 85]])
# 计算平均分、最高分和最低分
mean_score = np.mean(scores, axis=0)
max_score = np.max(scores, axis=0)
min_score = np.min(scores, axis=0)
# 输出结果
print("平均分:", mean_score)
print("最高分:", max_score)
print("最低分:", min_score)
```
输出结果:
```
平均分: [77.8 81. 86.8]
最高分: [85 89 92]
最低分: [65 75 80]
```
这个程序可以用于计算任意一组学生的成绩数据的平均分、最高分和最低分,便于教师和学生进行学习和评估。
罗列一些库出来见附件,并选用一到二个库,编写程序来解决中译英,英译中
常用的中英文翻译库有:
- Googletrans:使用 Google Translate API 实现的 Python 翻译库。
- Baidu Translate API:使用百度翻译 API 实现的 Python 翻译库。
- Tencent AI Lab Translate:使用腾讯翻译 API 实现的 Python 翻译库。
- Youdao Translate API:使用有道翻译 API 实现的 Python 翻译库。
以下是使用 Googletrans 库编写的中英文翻译程序:
```python
from googletrans import Translator
translator = Translator(service_urls=['translate.google.cn'])
def cn2en(text):
result = translator.translate(text, dest='en')
return result.text
def en2cn(text):
result = translator.translate(text, dest='zh-CN')
return result.text
print(cn2en('你好,世界!'))
print(en2cn('Hello, world!'))
```
以下是使用 Baidu Translate API 库编写的中英文翻译程序:
```python
import requests
def cn2en(text):
url = 'http://api.fanyi.baidu.com/api/trans/vip/translate'
params = {
'q': text,
'from': 'zh',
'to': 'en',
'appid': 'your_appid',
'salt': 'your_salt',
'sign': 'your_sign',
}
response = requests.get(url, params=params)
result = response.json()
return result['trans_result'][0]['dst']
def en2cn(text):
url = 'http://api.fanyi.baidu.com/api/trans/vip/translate'
params = {
'q': text,
'from': 'en',
'to': 'zh',
'appid': 'your_appid',
'salt': 'your_salt',
'sign': 'your_sign',
}
response = requests.get(url, params=params)
result = response.json()
return result['trans_result'][0]['dst']
print(cn2en('你好,世界!'))
print(en2cn('Hello, world!'))
```
需要在百度翻译 API 的官网上注册账号并创建应用,然后将应用的 appid、密钥和 salt 替换到上面的代码中。
使用其他翻译库也类似,只需要按照对应的 API 接口文档编写程序即可。