定义
一个箭头矩阵是一个矩阵,其具有所有条目等于0,除了在主对角线,顶行和最左一列的那些。换句话说,矩阵应如下所示:
* * * * * * * * 0 0 0 0 * 0 * 0 0 0 * 0 0 * 0 0 * 0 0 0 * 0 * 0 0 0 0 *
其中每个*是任何非零条目。
任务
给定非负整数的方阵,请根据上面的定义检查其是否为箭头。
除非您的语言等效于数组,例如指针和长度(例如C),否则您可能不将矩阵的大小作为输入。始终至少为3 x 3。
每种语言中以字节为单位的最短代码获胜。
输入输出
您可以选择以下任何一种格式来接收输入:
- 本机矩阵类型的矩阵(如果您的语言有一种)
- 2D数组1(1D数组的数组,每个数组对应于一行)
- 一维数组(因为矩阵始终为正方形)
- 字符串(您选择了空格,但请勿以任何方式滥用此字符串)。
在提供输出时,您可以按照标准决策问题定义报告真实/虚假值,也可以选择任意两个不同且一致的值。
此外,您可以使用任何编程语言通过任何标准方法进行输入和输出,同时请注意,默认情况下禁止这些漏洞。如果要选择其他格式或不确定某些内容,请在评论中提问。
1:或与您的语言等效的语言(列表,向量等)
例子
让我们看下面的例子:
1 2 2 2 2 1 0 0 3 0 1 0 4 0 0 1
这是一个箭头矩阵(您的程序应报告真实值),因为主对角线上的元素为1 1 1 1
,顶行上的元素为,1 2 2 2
最左列的元素为1 2 3 4
。所有其他条目均为0,因此它满足所有条件。
3 5 6 7 1 0 8 0 0
此矩阵不是箭头,因为主对角线上有一个0。
9 9 9 9 9 9 0 0 9 7 9 0 9 0 0 9
这个也不是箭头,因为它包含7代替0。
更多测试案例
真相:
[[1,1,1],[1,1,0],[1,0,1]] [[1、2、3、4],[1、1、0、0],[1、0、1、0],[1、0、0、1]] [[1、2、2、2],[2、1、0、0],[3、0、1、0],[4、0、0、1]] [[34,11,35,5],[56,567,0,0],[58,0,679,0],[40,0,0,7]]
虚假:
[[3,5,6],[7,1,0],[8,0,0]] [[9,9,9,9],[9,9,0,0],[9,7,9,0],[9,0,0,9]] [[1、0、3、4],[1、1、0、0],[1、0、1、0],[1、0、0、1]] [[1,6,3,4],[13,2,0,6],[29,0,1,0],[2,0,0,4]]