Giriş çıkışları olarak tetris bloklarının bir listesini veren veya parçaların bağlayabileceği aynı yükseklik seviyesindeki iki nokta arasındaki en büyük boşluğu döndüren bir program veya işlev yazmalısınız.
7 tip tetris parçası şunlardır:
Bu parçalara sırasıyla I, J, L, O, S, T ve Z harfleriyle atıfta bulunacağız. Parçaları döndürebilirsiniz, ancak Tetris oyununda olduğu gibi yansıtamazsınız.
Görevimiz verilen parçalardan dik olarak bağlı bir alan (yanlara bağlı taraflar) oluşturmaktır. Bu alan, aynı yükseklikte olan iki birim kareyi (ayrıca dikey olarak) bağlamalıdır. Köprü kurabileceğimiz iki kare arasındaki en büyük boşluğu bulmalıyız.
Ayrıntılı örnekler
L parçası ile 3 boşluğu bağlayabiliriz
L
XLLLX
S parçası ile 2'lik bir boşluk bağlayabiliriz
SS
XSSX
S, S, O parçaları ile 7 boşluk bağlayabiliriz (8 boşluk bağlayamayacağımızı unutmayın)
S
XSSOO SSX
SOOSS
Giriş
- Yalnızca I, J, L, O, S, T ve Z büyük harflerini içeren mevcut parçaları temsil eden bir dize. Her harf tam bir tetris parçasını temsil eder.
- Harfler dizede alfabetik sırada olacaktır.
- Dize en az bir karakter uzunluğunda olacaktır.
Çıktı
- Tek bir pozitif tam sayı, verilen parçalarla bağlanabilir en büyük boşluk.
Örnekler
Giriş => Çıkış
OSS => 7
LS => 5
LZ => 6
ZZZZ => 10
LLSSS => 14
IIJSSSTTZ => 28
IISSSSSS => 24
OOOSSSSSSSSSSSSTT => 45
IJLOSTZ => 21
IJLOSTZZZZZZZ => 37
IIJLLLOSTT => 31
IJJJOOSSSTTZ => 35
Bu kod golf bu yüzden en kısa giriş kazanır.