Otrzymasz ciąg znaków składający się z drukowalnego ASCII (bez znaków nowej linii). Twoim zadaniem jest zbudowanie ładnej klatki schodowej dla mojego zamku.
Jak zbudować fajne schody?
Po pierwsze, powinieneś uzyskać wszystkie obroty struny. Na przykład Ciąg
abcd
ma następujące obroty:abcd, bcda, cdab, dabc
(każda postać jest przenoszona na koniec, aż dojdziemy do ostatniej postaci).Teraz umieszczamy każdy obrót jeden na drugim:
abcd bcda cdab dabc
Tak naprawdę nie możemy wspiąć się po prostej ścianie, więc musimy budować schody. Oznacza to, że przed każdą rotacją należy dodać liczbę spacji odpowiadającą jej indeksowi na liście rotacji:
abcd bcda cdab dabc
Potrzebujesz także Schodów, które prowadzą do drugiej strony mojego zamku, więc powinieneś zbudować taki jak poniżej, odwracając każdy obrót i dodając pewne odstępy:
abcd dcba bcda adcb cdab badc dabccbad
To jest golf-golf , stąd wygrywa najkrótszy kod w bajtach i obowiązują standardowe reguły dla tagu.
Przypadki testowe
Wejście:,
abcd
Wyjście:abcd dcba bcda adcb cdab badc dabccbad
Wejście:,
aaaa
Wyjście:aaaa aaaa aaaa aaaa aaaa aaaa aaaaaaaa
Wejście:,
Code golf
Wyjście (zauważ spacje):Code golf flog edoC ode golfC Cflog edo de golfCo oCflog ed e golfCod doCflog e golfCode edoCflog golfCode edoCflog olfCode g g edoCflo lfCode go og edoCfl fCode gollog edoCf
dab
do. -------Odpowiedzi:
05AB1E , 12 bajtów
Kod:
Wykorzystuje kodowanie 05AB1E . Wypróbuj online!
Wyjaśnienie:
źródło
Galaretka , 16 bajtów
Wypróbuj online!
Oczywiście, -1 za pomocą Jonathan Allan S”
ɓ
!źródło
J’ɓ⁹⁶ẋ;"ṙz⁶Zm€0Y
(lubLḶ
dlaJ’
)Siatkówka , 47 bajtów
Wypróbuj online! Objaśnienie: Pierwszy etap tworzy lewe schody, biorąc pod uwagę każdy znak i tworząc spacje równe bieżącej pozycji, następnie resztę ciągu, potem początek ciągu, a następnie spacje równe pozostałej części ciągu. Reszta skryptu przebiega po każdej właśnie wygenerowanej linii. Najpierw linia jest duplikowana, następnie znaki w duplikacie są odwracane, a następnie linia i jej duplikat są łączone.
źródło
Python 3 , 89 bajtów
Wypróbuj online!
-1 bajt dzięki ovs
-1 bajt dzięki Lynn
źródło
l-i-1
może byćl+~i
jak~i == -i-1
' '*(l+~i)*2
równa się' '*(l+~i)
, czyli o jeden bajt krócej!C (gcc) , 126 bajtów
Wypróbuj online!
źródło
Węgiel ,
23 2120 bajtówWypróbuj online!
Prawdopodobnie można grać w golfa więcej, ale piszę z aplikacji mobilnej. Link do pełnej wersji .
źródło
G→↘←Lθθ‖C
.Haskell,
8079 bajtówWypróbuj online!
Jak to działa
Edycja: Dzięki @ Ørjan Johansen za bajt.
źródło
u#_=u
zapisuje bajt.unlines
tam, gdzieu#_=u
nie wpisuję sprawdzania, a później przełączyłem się na budowanie pojedynczego ciągu ... Dzięki!J, 34 bajty
bez golfa
Wypróbuj online!
źródło
Pyth , 19 bajtów
Wypróbuj online!
źródło
Mathematica, 119 bajtów
źródło
PHP, 95 bajtów
Uruchom jako potok z
-nR
lub spróbuj online .awaria
źródło
Japt , 22 bajty
Wiodąca nowa linia jest częścią programu.
Wypróbuj online!
Uruchom wszystkie przypadki testowe, używając mojego WIP CodePen.
Wyjaśnienie
Implikowany:
U
= ciąg wejściowy. Pierwszy wiersz jest pusty, aby go nie zastąpićU
.Drugi wiersz domyślnie przypisuje długość (
l
)U
doV
.Trzecia linia:
źródło
Pyth, 20 bajtów
Wypróbuj online!
źródło
JavaScript (ES6), 118 bajtów
Przykładowy fragment kodu:
źródło
Python 2 ,
8583 bajtówl+~i
i pomógł mi dostrzec niechciane miejsceWypróbuj online!
źródło
l-1-i
może byćl+~i
jak~i == -i-1
8th ,
173168 bajtówKod
Wersja bez golfa z komentarzami
Zastosowanie i przykłady
Lub bardziej wyraźnie
źródło