我总是惊讶于技术的发展。如果您在二十年前告诉我,我将在300美元(约200美元)的设备上完成这一挑战41,000英尺,我会完全嘲笑您:)
不幸的是,我与(Air Asia X)一起飞行的预算航空公司不提供WiFi,否则我也可以将这41,000英尺推向空中。
每周挑战219
abaoqian1,My solution
任务1:排序方块
任务
您有一个数字列表。
写一个脚本以使列表中的每个数字平方并返回排序列表,增加了顺序。
我的解决方案
这很简单,因此不需要太多解释。我进行输入,每个数字平方,对列表进行排序,最后打印列表。
例子
$ ./ch-1.py -2 -1 0 3 4
0, 1, 4, 9, 16
$ ./ch-1.py 5 -4 -1 3 6
1, 9, 16, 25, 36
任务2:旅行支出
任务
您有两个列表,@costs
和@days
。
列表@costs
包含您可以购买的三种不同类型的旅行卡的成本。
例如@costs = (5, 30, 90)
Index 0 element represent the cost of 1 day travel card.
Index 1 element represent the cost of 7 days travel card.
Index 2 element represent the cost of 30 days travel card.
list @days
包含您想在一年中旅行的日常数。
例如:@days = (1, 3, 4, 5, 6)
上面的示例意味着您想在第1天,第3天,第4天,第5天和第6天旅行。
写一个脚本以找到最低旅行费用。
我的解决方案
对于此任务,它可以使用递归功能。对于输入,我认为前三个值是1天,7天和30天通行证的成本,并将其余的数字用于days
列表。
i首先定义passes
dict(perl中的哈希),其中钥匙是通行证有效的日子,值是通过的成本。我还创建了代表我要旅行的日子的travel_on
列表(perl中的数组)。此列表是数字上排序的。
passes
dict和travel_on
列表调用buy_pass
函数。如果以后是空的,我不需要再购买任何通行证,因此请返回0
。我循环浏览passes
dict中的每个项目。我知道通行证没有覆盖的日子是第一天(即travel_on[0]
)加上通行证的日子。我在剩下的日子里再次致电该功能。我还跟踪最低支出,这是记录并在功能上游发送的。
例子
$ ./ch-2.py 2 7 25 1 5 6 7 9 15
11
$ ./ch-2.py 2 7 25 1 2 3 5 7 10 11 12 14 20 30 31
20