abioqian0,My solutions
任务1:单调阵列
任务
您有一个整数。
编写一个脚本以找出给定数组是否单调。打印1如果是否则0。
阵列是单调的,如果单调增加或减小。
我的解决方案
这是相对直接的,因此并不需要太多解释。如果最后一个值小于第一个值,则使用python中的n[::-1]
或perl中的reverse函数反转数组。这意味着如果阵列单调,则阵列将始终增加。
然后,我比数组的长度少量迭代0到2。对于每次迭代,我检查该位置的值是否小于或等于下一个值。如果不是,我返回0
。
如果我们到达迭代的末尾,我们知道这些值是单调的,并返回1
。
例子
$ ./ch-1.py 1 2 2 3
1
$ ./ch-1.py 1 3 2
0
$ ./ch-1.py 6 5 5 4
1
任务2:重塑矩阵
任务
您有一个矩阵(m x n)和两个整数(r)和(c)。
编写一个脚本以用给定矩阵中的原始值重塑给定的矩阵(r x c)。如果您可以重塑打印0。
我的解决方案
有时挑战的一部分是弄清楚如何解析输入。在这种情况下,我有点作弊,只是在所有参数中都竭尽全力,然后从中提取整数。这是因为最终我们实际上并不关心输入矩阵。
一旦泥浆,我就删除了最后两个整数,并将它们存储为r
和c
。 Perl有splice方法可以做到这一点。 python似乎没有等效的,所以我一次只是将它们弹出。
下一步是设置输入阵列的长度是r
和c
的乘积。如果不是,我返回0
并退出。
最后一步是打印新矩阵。这次Python确实具有支持1
以外的步骤的范围运算符。对于perl,我使用了c风格进行循环。
例子
$ ./ch-2.py "[ 1 2 ] [ 3 4 ]" 1 4
[ 1 2 3 4 ]
$ ./ch-2.py "[ 1 2 3 ] [ 4 5 6 ]" 3 2
[ 1 2 ]
[ 3 4 ]
[ 5 6 ]
$ ./ch-2.py "[ 1 2 ]" 3 2
0