每周挑战189
abaoqian1,My solution
任务1:更大的角色
任务
您有一个字符(a..z)和目标字符的数组。
编写一个脚本,以在给定阵列词典中发现最小的字符大于目标字符。
我的解决方案
可以解决这一挑战有两种方法。一种解决方案是通过字母表工作并在比赛中退出。这在perl中相对直接(++a
是b
),在python中并不容易。
所以我采取的方法如下:
- 从输入中获取最后一个值并将其存储为
target
- 在列表中找到大于目标的所有其他值。
- 对此列表进行排序
- 打印列表中的第一项。如果找不到项目,请打印目标。
例子
$ ./ch-1.py e m u g b
e
$ ./ch-1.py d c e f a
c
$ ./ch-1.py j a r o
r
$ ./ch-1.py d c a f a
c
$ ./ch-1.py t g a l v
v
任务2:阵列学位
任务
您的数组为2个或多个非阴性整数。
编写一个脚本以找出最小的切片,即原始数组的连续子阵列,具有给定数组的程度。
阵列的度数是阵列中元素的最大频率。
我的解决方案
对于此挑战,我创建了一个函数调用get_degree
。这返回最常用的数字的频率。该函数创建一个计数每个数字频率的dict(hash),然后返回所有值的最大值。
i然后有一个双回路,可以查看数组的所有可能切片。如果切片具有所需的程度,并且我们没有解决方案或切片之和小于任何以前的解决方案,我们将此切片标记为解决方案。
i然后打印上述循环中发现的切片。
例子
$ ./ch-2.py 1 3 3 2
3, 3
$ ./ch-2.py 1 2 1 3
1, 2, 1
$ ./ch-2.py 1 3 2 1 2
2, 1, 2
$ ./ch-2.py 1 1 3 2 3
1, 1
$ ./ch-2.py 2 1 2 1 1
1, 2, 1, 1