编写一个程序或函数,该程序或函数需要一个正整数N和一个宽度为W,高度为H(也是正整数)的十进制数字网格(0到9)。您可以假设N小于或等于W和H中的较大者。
打印或返回在网格中水平或垂直出现的最大连续N位数字,以正常阅读顺序或相反顺序书写。
- 不考虑数字的对角线。
- 网格不环绕,即不具有周期性边界条件。
例如3×3网格
928
313
049
将具有9
作为输出为N = 1,94
作为输出为N = 2,并且940
作为输出为N = 3。
4×3网格
7423
1531
6810
将具有8
作为输出为N = 1,86
对于N = 2,854
对于N = 3,并且7423
对于N = 4。
3×3网格
000
010
000
1
对于N = 1,10
对于N = 2和N = 3 ,将具有输出(010
对于N = 3也有效)。
1×1网格
0
0
N = 1的输出。
您可以采用任何方便的合理格式输入。例如,网格可以是换行符分隔的数字字符串,多维数组或数字列表列表等。如果输出零是网格的一部分,则允许在输出中使用前导零。
这是代码高尔夫球,因此以字节为单位的最短代码胜出,但我还将奖励布朗尼点(即更有可能的投票),以表明他们的算法在计算上是有效的。
1
我们可以打印任何前导零吗?
—
PurkkaKoodari 2015年
@ Pietu1998“如果输出中的零是网格的一部分,则允许在输出中使用零。”
—
加尔文的爱好2015年