Inspirowany tym postem . Dla tych, którzy zaznaczają to pytanie jako duplikat, zachęcam do przeczytania pytania, aby przekonać się, że moje jest modyfikacją powiązanego z nim pytania. Ten, do którego prowadzi link, nie wymaga podania danych i ma po prostu wydrukować alfabet po przekątnej.
Wyzwanie
Biorąc pod uwagę od 1 do 26 włącznie, wydrukuj alfabet po przekątnej, ale zacznij drukować pionowo na podstawie podanego wpisu.
Przykłady
Biorąc pod uwagę wkład:
16
Twój program powinien wypisać:
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
Wkład:
4
Wydajność:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
v
w
x
y
z
Wkład:
1
Wydajność:
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
Wkład:
26
Wydajność:
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
Punktacja
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w każdym języku.
Powodzenia!
Odpowiedzi:
Węgiel , 9 bajtów
Wypróbuj online!
Jak to działa
To rozwiązanie nie działa już w bieżącej wersji węgla drzewnego (najprawdopodobniej z powodu poprawki błędu), ale problem został rozwiązany dla 10 bajtów z
↘✂β⁰N↓✂βIθ
.źródło
Iθ
zamiastη
.)…βN
zamiast✂β⁰N
.05AB1E , 11 bajtów
Pierwszy raz próbuję 05AB1E, więc jestem otwarty na wskazówki.
Wypróbuj online!
Jeśli dozwolone jest wejście od zindeksowane od z
0
do25
, może to być 10 bajtów przez pominięcie<
.źródło
JavaScript (ES2017),
73727166 bajtówOszczędność niektórych bajtów dzięki @JustinMariner
źródło
10
poz
końcu z powodu++x
wcześniejszegox.toString()
. Naprawiono i grał w golfa do 68 bajtów przy użyciupadStart
: TIOn=>g=(x=26)=>x?f(x-1)+(x+9).toString(36).padStart(x<n?x:n)+'\n':""
Python 2,
61 5857 bajtów-3 bajty dzięki Rod
-1 więcej bajtów dzięki Mr. Xcoder
źródło
input
będzie wywoływane za każdym razem, gdyfor
iteruje pętla, nawet jeśli jest tylko jeden wiersz danych wejściowych.Ruby,
514643 bajtówZwraca listę ciągów.
Wygląda na to, że ludzie Pythona mieli coś do roboty ze swoimi indeksami dolnymi. -5 bajtów, czerpiąc inspirację z ulepszenia ppperry przez pana Xcodera.
Poprzednie rozwiązanie z
rjust
(51 bajtami):źródło
Python 2 ,
625057 bajtówWypróbuj online!
Kradnie mocno od tej odpowiedzi Dennisa.
źródło
R
99 99bajtów@MickeyT zapisał 10 bajtów
funkcjonować
próbny
źródło
ifelse
spróbujmin
.print.noquote
można zastąpićcat
na'\n'
w wklej.\n
Może być prosto CR. Nawiasy klamrowe dla ciała funkcji można upuścić.write
zamiastcat
ipaste
:write(c(rep(" ",min(x,i)),letters[i]),"",26,,"")
Siatkówka ,
7268 bajtówWypróbuj online! Dane wyjściowe obejmują końcowe białe znaki. Zapisz 1 bajt, usuwając spację przed
$
dopuszczeniem indeksowania zerowego. Edycja: Zapisano 4 bajty za pomocą generatora alfabetów @ MartinEnder. Wyjaśnienie:Wstaw alfabet.
Przekątna.
Przekształć dane wejściowe w jednoargumentowe jako spacje.
Przytnij długie linie, aby żadna linia nie była dłuższa niż pusta linia na końcu.
źródło
Mathematica, 103 bajty
źródło
Pyth ,
211715 bajtówWykonano na telefonie z baterią 3%.
Wyjaśnienie:
Wypróbuj online!
źródło
Galaretka , 11 bajtów
Wypróbuj online!
źródło
Common Lisp, 84 bajtów
Wypróbuj online!
źródło
Python , 52 bajty
Zaskoczony, nikt nie zauważył, że oczywiste podejście było równie krótkie jak inne.
Wypróbuj online!
Python , 53 bajty
Wypróbuj online!
źródło
Haskell,
5854 bajtówWypróbuj online!
Jak to działa
Edycja: @Lynn zapisał 4 bajty. Dzięki!
źródło
['`'..]!!m
.Java (OpenJDK 8) , 69 bajtów
Wypróbuj online!
źródło
Gaia , 12 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
JavaScript (Node.js) , 72 bajty
Zwraca listę ciągów.
Wypróbuj online!
źródło
.padStart
padEnd
zamiastrepeat
.Mathematica, 67 bajtów
Zwraca ciąg
SparseArray
znaków. Aby wizualizować, dołączGrid@
z przodu.Wypróbuj na Wolfram Sandbox
Stosowanie
źródło
Python 2 , 52 bajty
Wypróbuj online!
Zakładam, że lista ciągów jest w porządku ...
Najkrótszy, jaki mogłem uzyskać z rekurencją:
źródło
SOGL V0.12 , 12 bajtów
Wypróbuj tutaj!
źródło
Python 3 , 52 bajty
Wypróbuj online!
źródło
C (gcc) , 50 bajtów
Wypróbuj online!
źródło
Proton , 40 bajtów
Zakładając, że lista ciągów jest w porządku.
Wypróbuj online!
Proton , 49 bajtów
Zamiast tego jako sztuka ASCII:
Wypróbuj online!
źródło
C # (.NET Core) , 66 + 18 bajtów
Liczba bajtów obejmuje również
Wypróbuj online!
Zwraca kolekcję ciągów, po jednym dla każdej linii. Jeśli nie jest to dozwolone, odpowiedź będzie pęcznieć o 17 bajtów dla
string.Concat()
i\n
wewnątrz ciąguWyjaśnienie:
źródło
MATL, 14 bajtów
Wypróbuj w MATL Online
Wyjaśnienie
źródło
Pyth , 12 bajtów
Wypróbuj tutaj!
Jeśli dozwolone są listy ciągów, można to skrócić do 11 bajtów :
Pyth , 12 bajtów
Wypróbuj tutaj!
Pyth , 14 bajtów
Wypróbuj tutaj.
Jeśli dozwolone są listy ciągów, można to skrócić do 13 bajtów :
Jak to działa?
W przeciwieństwie do większości innych odpowiedzi, mapy / pętle nad małymi literami we wszystkich 3 rozwiązaniach.
Wyjaśnienie nr 1
Wyjaśnienie nr 2
Wyjaśnienie nr 3
źródło
Haskell, 60 bajtów
Jest to funkcja zwracająca dane wyjściowe jako ciąg.
Wypróbuj online.
źródło
Japt ,
1613 bajtówZaoszczędź 3 bajty dzięki @Oliver
Przetestuj online!
źródło
q / kdb +,
3331 bajtówRozwiązanie:
Przykład:
Wyjaśnienie:
Utwórz listę spacji (26) do długości minimum danych wejściowych i zakresu
0..25
), połącz z każdą literą alfabetu, wydrukuj na standardowe wyjście.Uwagi:
źródło
Java 1.8 (bez Lambda), 98 bajtów
Logika jest prosta. Nie zapewnia sprawdzania poprawności danych wejściowych, bardzo źle!
źródło
for(;c++<26;s+=c<i?" ":"")System.out.println(s+(char)o++);
Również możesz napisać tylko funkcję lub lambda zamiast pełnego programu.a[0]
? Myślę, że fragmenty nie są uczciwe, jeśli się nie kompilują; wyzwanie jest równie interesujące z językiem bogatym w konstrukty.void f(int i){...}
(nie wymaga statycznego) lubi->{...}
zamiast całego programu. Zobacz wszystkie porady Java . Zobacz moją odpowiedź dla tego samego wyzwania , jako przykład. Miłej zabawy na stronie! :-)