入力または出力としてテトリスブロックのリストを指定するか、ピースが接続できる同じ高さレベルの2つのポイント間の最大ギャップを返すプログラムまたは関数を作成する必要があります。
7種類のテトリスピースは次のとおりです。
これらのピースを、それぞれ文字I、J、L、O、S、T、Zで参照し、形状を参照します。テトリスゲームのようにピースを回転させることはできますが、ミラーリングすることはできません。
私たちのタスクは、与えられたピースから直交接続された領域(側面が側面に接続されている)を作成することです。この領域は、同じ高さにある2つの単位正方形を(直交して)接続する必要があります。ブリッジできる2つの正方形の間の最大のギャップを見つける必要があります。
詳細な例
ピースLを使用すると、3つのギャップを接続できます。
L
XLLLX
ピースSを使用すると、2つのギャップを接続できます
SS
XSSX
ピースS、S、Oを使用すると、7のギャップを接続できます(8のギャップを接続できないことに注意してください)
S
XSSOO SSX
SOOSS
入力
- 大文字のI、J、L、O、S、T、およびZのみを含む使用可能なピースを表す文字列。すべての文字は完全なテトリスのピースを表します。
- 文字列内の文字はアルファベット順になります。
- 文字列は少なくとも1文字の長さになります。
出力
- 単一の正の整数、指定されたピースと接続可能な最大のギャップ。
例
入力=>出力
OSS => 7
LS => 5
LZ => 6
ZZZZ => 10
LLSSS => 14
IIJSSSTTZ => 28
IISSSSSS => 24
OOOSSSSSSSSSSSSTT => 45
IJLOSTZ => 21
IJLOSTZZZZZZZ => 37
IIJLLLOSTT => 31
IJJJOOSSSTTZ => 35
これはコードゴルフなので、最短のエントリーが勝ちます。
ええ、わかりました。私はそれらをそのまま見ていました。
—
ティム