前書き
最近、Pretty Good Software Companyでの求人を受け入れました。あなたはオフィスの大きさに満足していますが、最大のオフィスはありますか?立ち寄ったときに同僚のオフィスをただ見回すだけではわかりにくい。これを理解する唯一の方法は、建物の設計図を調べることです...
あなたのタスク
建物のフロアプランを取り、オフィスが最大かどうかを示すプログラム、スクリプト、または関数を作成します。建物はn × nの正方形であるため、フロアプランは読みやすくなっています。
入力は、n + 1で \n
区切られた行で構成されます。最初の行には番号nが付きます。次のn行は、建物のフロアプランです。簡単な入力例:
6
......
. . .
.X . .
. . .
. . .
......
フロアプランのルールは次のとおりです。
.
(ASCII 46)壁を表すために使用されます。(スペース[ASCII 32])は、オープンスペースを表すために使用されます。
- あなたは
X
(ASCII 88)で表されます。あなたはあなたのオフィスにいます。 - フロアプランはn行で、各行にn文字が含まれます。
- 建物は四方を壁で完全に囲まれています。これは、入力の2行目(フロアプランの最初の行)と入力の最後の行がすべて
.
sであることを意味します。また、すべてのフロアプランラインの最初と最後の文字が.
sであることを意味します。 - オフィスのサイズは、隣接するスペースの合計として定義されます(壁を通過することなく、N、S、E、Wの4方向に移動することにより連続します)。
- オフィスのサイズの目的で、あなたを表すXは
(オープンスペース)としてカウントされます
- 4 <= n <= 80
あなたのオフィスが他のすべてのオフィスよりも厳密に大きいかどうかを出力する必要があります。出力は、選択したプログラミング言語でTrueまたはFalseを明確に示し、ゼロ、null、および空を示すFalseの標準規則に準拠するものであれば何でもかまいません。Trueは、オフィスが厳密に最大であることを意味します。
上記の入力のサンプル出力:
1
オフィスは8平方フィートで、他のオフィスは4平方フィートしかないためです。
I / Oガイドライン
- 入力は標準入力から読み取られ、出力は標準出力に返されます。
または
- 入力は関数への単一の文字列引数であり、answerはその関数の戻り値です。
よくある質問
- 建物全体が壁とオフィスで構成されています。
- 建物は1階のみ
- 入力にはXが含まれることが保証されますが、スペースが含まれることは保証されません。1x1のオフィスがあり、建物の残りの部分は壁です(最大のオフィスがあります!
その他の例
10
..........
. . . .
. . . .
. . . .
. .. . .
.. .
..........
. X .
. .
..........
ここには3つのオフィスがあり、南のオフィスは長方形、北西のオフィスは三角形(ish)、北東のオフィスは奇妙な形をしていますが、あなたのオフィスよりも大きくなっています。出力はFalseになります。
これは、最短のコードを作成するための挑戦であり、幸せなコードゴルフです!
X
、入力で許可される最大数を追加できます。:)