Dziś zbudujemy piramidę z liter! Oto przykładowa piramida literowa dla pierwszych 5 liter:
Napisz pierwsze 5 liter ze spacją, najpierw rosnąco, a następnie malejąco.
A B C D E D C B A
Zrób to samo dla pierwszych czterech liter w powyższej linii, ale z dwoma dodatkowymi spacjami wiodącymi:
A B C D C B A A B C D E D C B A
Powtarzaj ten sam krok, aż ostatni wiersz będzie po prostu „A”
A A B A A B C B A A B C D C B A A B C D E D C B A
Powtórz kroki drugi i trzeci, schodząc w dół zamiast w górę:
A A B A A B C B A A B C D C B A A B C D E D C B A A B C D C B A A B C B A A B A A
Ten sam wzór można rozszerzyć do 26 znaków. Wyzwanie polega na napisaniu programu lub funkcji, która przyjmuje na wejściu liczbę całkowitą i tworzy odpowiednią piramidę literową. Możesz wybrać użycie wielkich lub małych liter. Zawsze możesz założyć, że wejście będzie liczbą całkowitą [1, 26]
, a wyjście może mieć dowolny rozsądny format dla ciągu 2d. Na przykład ciąg znaków z nowymi liniami, tablica znaków, drukowanie do pliku itp. Każda linia może zawierać końcowe spacje, a opcjonalnie możesz wypisać jedną końcową nową linię.
Oto kilka przykładowych wejść / wyjść:
1:
A
2:
A
A B A
A
3:
A
A B A
A B C B A
A B A
A
5:
A
A B A
A B C B A
A B C D C B A
A B C D E D C B A
A B C D C B A
A B C B A
A B A
A
13:
A
A B A
A B C B A
A B C D C B A
A B C D E D C B A
A B C D E F E D C B A
A B C D E F G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G H I H G F E D C B A
A B C D E F G H I J I H G F E D C B A
A B C D E F G H I J K J I H G F E D C B A
A B C D E F G H I J K L K J I H G F E D C B A
A B C D E F G H I J K L M L K J I H G F E D C B A
A B C D E F G H I J K L K J I H G F E D C B A
A B C D E F G H I J K J I H G F E D C B A
A B C D E F G H I J I H G F E D C B A
A B C D E F G H I H G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G F E D C B A
A B C D E F E D C B A
A B C D E D C B A
A B C D C B A
A B C B A
A B A
A
26:
A
A B A
A B C B A
A B C D C B A
A B C D E D C B A
A B C D E F E D C B A
A B C D E F G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G H I H G F E D C B A
A B C D E F G H I J I H G F E D C B A
A B C D E F G H I J K J I H G F E D C B A
A B C D E F G H I J K L K J I H G F E D C B A
A B C D E F G H I J K L M L K J I H G F E D C B A
A B C D E F G H I J K L M N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W X W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W X Y X W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W X Y X W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W X W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V W V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U V U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T U T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S T S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R S R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q R Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P Q P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O P O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N O N M L K J I H G F E D C B A
A B C D E F G H I J K L M N M L K J I H G F E D C B A
A B C D E F G H I J K L M L K J I H G F E D C B A
A B C D E F G H I J K L K J I H G F E D C B A
A B C D E F G H I J K J I H G F E D C B A
A B C D E F G H I J I H G F E D C B A
A B C D E F G H I H G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G F E D C B A
A B C D E F E D C B A
A B C D E D C B A
A B C D C B A
A B C B A
A B A
A
Jak zawsze jest to gra w golfa, więc obowiązują standardowe luki i wygrywa najkrótsza odpowiedź w bajtach!
źródło
Odpowiedzi:
Python,
184 174169 bajtówEdycja: zapisano 5 bajtów dzięki @ nedla2004
źródło
g
na trzech liniach. 2.) Przypiszrange
do zmiennej. Oba możesz zobaczyć tutaj . (Uwaga: zanimdef f(x,y,z):
będzie spacja, przedfor
pętlą znajduje się tabulatorrange
s, które można wymienić?R((a-i))
wR(a-i)
iR((a-i-1))
doR(a-i-1)
, prawda?for
pętlami wewnątrz listy.print
.05AB1E , 13 bajtów
Kod:
Wyjaśnienie:
Wykorzystuje kodowanie CP-1252 . Wypróbuj online!
źródło
MATL ,
2524 bajtówWypróbuj online!
Dłuższe alternatywy:
1Y20hiZv&+G-t0>*1&!t0*hTe)
(26 bajtów)Zv&+64+G-t64>*l2&Y"tZyP:o*c
(27 bajtów)Wyjaśnienie
źródło
V , 45 bajtów
Wypróbuj online!
To okazało się być sposób mniej Golfy niż miałem nadzieję, tak ja nie zamierzam zakładać jeszcze wyjaśnienia. Mam nadzieję, że najpierw uda mi się go trochę zniszczyć. Jak zwykle, zrzut heksowy:
źródło
J, 34 bajty
Pobiera liczbę jako dane wejściowe i zwraca tablicę znaków 2D.
Wyjaśnienie
Rozłożony przypadek testowy
Spróbujmy tego z wejściem
5
.Przypadki testowe
źródło
Galaretka , 13 bajtów
TryItOnline!
W jaki sposób?
źródło
Pyke, 12 bajtów
Wypróbuj tutaj!
Wyłącz ostrzeżenia dla określonych danych wyjściowych
źródło
C #,
266263262261245238235232 bajtyGra w golfa:
Niegolfowany z komentarzami:
Wypróbuj: http://rextester.com/WIL67940
Zwraca listę ciągów. Każdy ciąg zawiera jedną linię wyjściową.
Zrobiłem to dla zabawy i treningu. Zdaję sobie sprawę, że wygrana w golfa kodowego za pomocą C # jest poza zasięgiem.
EDYCJA 1: Zmieniono interpolację łańcucha na
+
operator.EDYCJA 2:
c <= 'A' + i
=>c < 'B' + i
EDYCJA 3: Zamiana
char
zvar
.EDYCJA 4: Zmieniono typ zwrotu z
void
naList
.EDYCJA 5: Usunięcie niepotrzebnej zmiennej.
EDYCJA 6: Nowy sposób rozdzielania połówek linii.
EDIT7: @Kaspar Kjeldsen, dziękuję.
źródło
C
124123 bajtyOszczędność 1 bajtu dzięki Mukulowi Kumarowi
Obecnie nie mogę zmusić mojej głowy do przekształcenia podwójnej pętli w jedną, na razie zostawię ją w ten sposób.W rzeczywistości jest większyWięc po prostu pozwalam zagnieżdżonej pętli.
Wykorzystuje normę Manhattan, aby uzyskać kształt rombu.
Nie golfowany:
źródło
j==2*n
zej-2*n
i wymianę? ()
wartości z:()
wartościąPython,
158154140139 bajtówTo jest mój pierwszy post, więc bądź delikatny! Bardzo często użyłem [:: - 1] do odwrócenia ciągów, więc być może jest tam jakaś optymalizacja. Komentarze mile widziane.
EDYCJE:
Dzięki @Rod za wskaźnik do pomocnego linku do tematu golfa w kodzie Python, a także za przypomnienie, że litery potrzebują spacji między nimi. Dziękujemy również @wec za ogólne wskazówki dotyczące usuwania spacji.
źródło
=
), po przecinkach i przed nawiasem otwierającym w instrukcji print. Wcięcie w Pythonie może być na dowolnym poziomie, o ile jest spójne, dzięki czemu można zapisać 3 znaki, niezależnie od instrukcji drukowania tylko o jedną spację zamiast czterech. To są łatwe oszczędności, jakie widzę.z
tylko raz, nie musisz używać zmiennej, po prostu umieśćs*2-1
bezpośrednio wcenter
funkcji. Tylko jeden szczegół, na wyjściu muszą być spacje między literami,' '.join
zaraz po wydruku powinno wystarczyć (ale musisz przerobić,s*2-1
aby uzyskać odpowiednią wartość).range
i dla[:]
to0
, więc nie musisz podawać jej wprostBrain-Flak, 630 + 3 = 633 bajtów
Wymaga
-A
to uruchomienia flagiWypróbuj online
To nie jest świetny golf, ale wyzwanie to jest dość trudne w Brain-Flak
źródło
Pyth, 23 bajty
Wypróbuj online
źródło
TSQL, 261 bajtów
Jedno wierszowe zapytanie - bez zapętlania
Niestety skrzypce pożerają miejsca na początku linii wyjściowych. Miejsca będą dostępne, jeśli zostaną wykonane w studiu zarządzania SQL Server
Skrzypce
źródło
Rubin,
137 115 10084 bajtówDzięki manatwork za komentarze.
źródło
0..n-1
→0...n
.n>0?…:""
.Befunge 93 , 175 bajtów
Wypróbuj online!
Prawdopodobnie niezbyt dobrze gra w golfa. No cóż. To było wystarczająco trudne z befunge:
Powodzenia w ustaleniu, jak to działa! Ledwo wiem
źródło
C #, 199 bajtów
Jak zawsze C # nie jest językiem golfowym, ale wolę kod „czytelny” bardziej niż kod ezoteryczny. Zrobiłem to również dla zabawy :)
Oto wersja bez golfa, dzięki czemu możesz łatwo zrozumieć, co zrobiłem:
(Myślę, że można to bardzo zoptymalizować ...)
źródło
Java, 213 bajtów
Nie golfowany:
źródło
Java, 394 bajtów
Zwykle używam C #, ale dobrze jest pomieszać ...
Gra w golfa:
Nie golfowany:
Test:
źródło
R,
1009787 bajtów(Aktualizacja:
scan()
do wprowadzania; nadużywane (x-1): 1 == x: 2-1.)Wygląda niezbyt odrapany dla jednego z języków słów kluczowych (te ze znakami specjalnymi zawsze będą lepsze).
źródło
PHP,
122116 bajtówczy jest krótsza droga?
źródło
JavaScript (ES6), 121 bajtów
Gdzie
\n
reprezentuje dosłowny znak nowej linii. Wyjścia pisane małymi literami.źródło
Partia, 269 bajtów
Linia 2 kończy się na 25 polach; oznacza to, że gdy indeks alfabetu jest ujemny, kwadraty po prostu pozostają puste.
źródło