定義
* * * * * * * * 0 0 0 0 * 0 * 0 0 0 * 0 0 * 0 0 * 0 0 0 * 0 * 0 0 0 0 *
各 * はゼロ以外のエントリです。
仕事
Given a square matrix of non-negative integers, check whether it
is arrowhead according to the 定義 above.
あなたの言語が配列に相当するものでなければ、ポインタと長さ(Cのようなもの)でない限り、行列の大きさを入力として取り込まない
かもしれません。それは常に少なくとも3 x 3になります。
各言語の最短コードバイト単位が勝ちます。
入出力
入力を受け取るために、次のいずれかのフォーマットから選択できます。
- ネイティブマトリックスタイプのマトリックス(あなたの言語にある場合)
- 2D配列 1 (それぞれ1行に対応する1D配列の配列)
- 1次元配列(行列は常に正方形なので)
- 文字列(スペースを選択しましたが、なんらかの方法で乱用しないでください)。
When it comes to providing output, you can either report a
truthy/falsy
value following the standard decision-problem
定義, or choose any two distinct and consistent values.
また、標準的な方法をプログラミング言語で使用し、これらの抜け穴はデフォルトでは禁止されています。他の形式を選択したい場合や、何かが不明な場合は、コメントにお尋ねください。
1:またはあなたの言語に相当するもの(リスト、ベクトルなど)
例
Let’s look at the following 例:
1 2 2 2 2 1 0 0 3 0 1 0 4 0 0 1
主対角線の要素は 1 1 1 1
であり、一番上の行の要素は 1 2 2 2
であるため、これは矢印の行列です(プログラムは真理値を報告する必要があります) code>、最も左の列にあるのは 1
です。他のすべてのエントリは 0
2 3 4
なので、これはすべての条件を満たします。
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
これは、 0 の代わりに 7
が含まれているため、矢頭でもありません。
より多くのテストケース
真実:
[[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]]
Javascript(ES6)、 48 47バイト
edc65のおかげで1バイト保存
m=>m.some((r,y)=>r.some((c,x)=>(x*y&&x!=y)^!c))
矢頭行列の場合は false
を返し、真矢印と偽を表すために2つの異なる値を使用できるため、矢印のない行列の場合は true
テストケース:
<div class=”snippet” data-lang=”js” data-hide=”true”
data-console=”true” data-babel=”false”> <div
class=”snippet-code snippet-currently-hidden”>
f=m=>m.some((r,y)=>r.some((c,x)=>(x*y&&x!=y)^!c))
console.log(f([[1, 1, 1], [1, 1, 0], [1, 0, 1]]))
console.log(f([[1, 2, 3, 4], [1, 1, 0, 0], [1, 0, 1, 0], [1, 0, 0, 1]]))
console.log(f([[1, 2, 2, 2], [2, 1, 0, 0], [3, 0, 1, 0], [4, 0, 0, 1]]))
console.log(f([[34, 11, 35, 5], [56, 567, 0, 0], [58, 0, 679, 0], [40, 0, 0, 7]]))
console.log(f([[3, 5, 6], [7, 1, 0], [8, 0, 0]]))
console.log(f([[9, 9, 9, 9], [9, 9, 0, 0], [9, 7, 9, 0], [9, 0, 0, 9]]))
console.log(f([[1, 0, 3, 4], [1, 1, 0, 0], [1, 0, 1, 0], [1, 0, 0, 1]]))
console.log(f([[1, 6, 3, 4], [13, 2, 0, 6], [29, 0, 1, 0], [2, 0, 0, 4]]))
</div> </div>