Twoim zadaniem jest zbudowanie programu identyfikującego kształt danych wejściowych. Kształty, które można zidentyfikować, mogą być dowolnymi z poniższych:
Plac
Aby zostać zidentyfikowanym jako kwadrat, źródło musi mieć wiersze o tej samej długości i taką samą liczbę wierszy, co znaki w wierszu (z wyłączeniem znaków nowej linii). Opcjonalny znak nowej linii jest dopuszczalny.
$_='
$_="
$_"'
;say
Prostokąt
Aby zostać zidentyfikowanym jako prostokąt, źródło musi mieć linie o jednakowej długości, ale liczba linii nie odpowiada liczbie znaków w linii (z wyłączeniem znaków nowej linii). Opcjonalny znak nowej linii jest dopuszczalny. Może to być pozioma lub pionowa.
$_=
"no
t a
squ
are
";#
$_="but it
is still a
consistent
shape!";##
Trójkąt
Aby zostać zidentyfikowanym jako trójkąt, źródło musi zaczynać się od jednego znaku, a każda kolejna linia musi mieć jeden dodatkowy znak (w tym ostatni) lub po pierwszej linii każda kolejna linia powinna mieć jeden znak mniej do ostatniej, która ma tylko jeden.
$
_=
"So
this
"."".
shape;
$_="or
even,
this
way
!!
"
Bałagan
Wszystko, co nie ma spójnego formatu zgodnie z powyższym, musi zostać zidentyfikowane jako bałagan.
Zasady
- Możesz zwrócić dowolne cztery spójne wartości do wydrukowania, aby zidentyfikować każdy kształt.
- Twój kod źródłowy musi również przestrzegać jednego z powyższych kształtów (nie, nie bałagan).
- Pojedynczy znak nowej linii w twoim źródle jest dopuszczalny.
- Możesz założyć, że dane wejściowe nie zawierają żadnych pustych linii (w tym nowych linii), nie są puste i nie składają się tylko z nowych linii.
- Wszystkie kształty muszą mieć wysokość i szerokość> = 2, w przeciwnym razie określa się to jako bałagan.
- Standardowe luki są zabronione.
- Najkrótsze rozwiązanie w bajtach w każdym języku wygrywa.
All shapes must have a height and width of >= 2.
['abc','cfd','fgh']
?