六角形のグリッドは、最近2次元データに関する課題でかなり人気のあるひねりになりました。ただし、これまで同様に興味深い三角形のグリッドはほとんど無視されてきたようです。かなり単純な挑戦でそれを修正したいと思います。
まず、三角形のグリッドをどのように表現しますか?次の例を考えてみてください(今は正しい図を無視してください):
セルはきちんと規則的なグリッドに落ちます(規則的なグリッドとの違いは、どのセルが隣接していると見なされるかだけです):
1234567
89abcde
fghijkl
mnopqrs
さて、右の図が示すように、三角形のグリッドには3つの主軸があります。水平軸と2つの対角軸です。
ASCIIグリッドでこれらを強調表示します。
AVAVAVA
VAabcAV
fVAiAVl
mnVAVrs
チャレンジ
三角形のグリッド(左上隅が上向きの三角形)を表す長方形の文字列が与えられます。ほとんどのセルはbe .
ですが、正確に2つのセルはになります#
。例:
....#
.#...
.....
2つ#
がグリッドの3つの軸のいずれかに沿って配置されているかどうか(つまり、上で強調表示されている3つの方向のいずれかの単一行にあるかどうか)を決定します。この例では、答えは「いいえ」です。
プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。
入力は、改行またはその他の便利な文字で区切られた単一の文字列、または文字列のリストです。.
およびの代わりに、任意の2つの(一貫した)印刷可能なASCII文字を使用でき#
ます。
ハイライトされたセルが整列している場合、出力は真実の値である必要があり、そうでない場合は偽の値である必要があります。
標準のコードゴルフ規則が適用されます。
テストケース
真のグリッド:
.#..#.
#
#
...........
...#.......
...........
...........
...........
.......#...
...........
...........
.......#...
...........
...........
...........
...#.......
...........
.#.........
...........
...........
...........
...........
.......#...
...........
...........
...#.......
...........
...........
...........
...........
.......#...
.........#.
...........
...........
...........
...........
...#.......
...........
...........
.......#...
...........
...........
...........
...........
...#.......
...........
.#.....#...
...........
...........
...........
偽のグリッド:
#.....
.....#
.....#
#.....
...#.......
...........
...........
...........
...........
.......#...
...........
...........
...#.......
...........
...........
...........
...........
.........#.
.......#...
...........
...........
...........
...........
...#.......
...........
...........
.......#...
...........
...........
...........
...........
.#.........