Zadanie
Biorąc pod uwagę jeden znak, który nie jest spacją, należy przedstawić kwadratową reprezentację tego wejścia 3 x 3. Na przykład, jeśli dane wejściowe to #
, dane wyjściowe to:
###
# #
###
Zasady
- Format wyjściowy jest ścisły, chociaż dozwolony jest końcowy znak nowej linii. Oznacza to, że wymagana jest spacja w środku, a także, że wymagane są dwa znaki nowej linii oddzielające trzy linie.
Przypadki testowe
Wkład: #
Wydajność:
###
# #
###
Wkład: A
Wydajność:
AAA
A A
AAA
Wkład: 0
Wydajność:
000
0 0
000
Punktacja
To jest golf golfowy . Najkrótsza odpowiedź w bajtach wygrywa.
Odpowiedzi:
Węgiel drzewny ,
53 bajtyWypróbuj online! Edycja: Zaoszczędź 40% dzięki @carusocomputing. Wyjaśnienie:
źródło
B³S
aby oszukać z tego bzdury.Marchewka , 11 bajtów
Wypróbuj online!
Program jest w trybie karetki, gdzie
#
s są zamieniane na wejście.źródło
Python 2 , 32 bajty
Wypróbuj online!
Dla
s='a'
: środeks+'\n \n'+s
generujea\n \na
is.join
odwraca ( dodaje się pogrubione s ), ponieważ akceptuje ciąg jako iterowalny, a następnie jest otoczony dwoma brakującymi znakamiaa\na a\naa
a
.join
.join
źródło
3*c+c.join('\n \n')+3*c
wiąże 32.)MATL , 5 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
05AB1E , 8 bajtów
Wypróbuj online!
Oryginalny pomysł, używając 30 jako liczby binarnej (niedokończony, ktoś inny wypróbuje to w innym języku):
05AB1E , 12 bajtów
Wypróbuj online!
źródło
Python 3.6 , 33 bajty
Wypróbuj online!
źródło
import sys
a następniesys.version
w replice, zwróci 3.6.1 zamiast 3.5.2. Nie mam pojęcia, dlaczego na górze widnieje napis 3.5.2. Wygląda na to, że popełnili tam błąd!RPL (Reverse Polish Lisp) , 60 znaków
(Uwaga: „→” to pojedynczy znak na HP48 i zgodnych kalkulatorach)
Przedstawiałby wizualnie to, co chcesz, mając trzy elementy na stosie:
Jeśli nalegasz, aby zwrócić go jako jeden ciąg, należy również dodać znaki nowego wiersza i połączyć ciągi pozostawione jako ćwiczenie dla następnego testera.
Wyjaśnienie:
→STR
: Zrób ostatni obiekt ze stosu w ciąg. (Więc dane wejściowe mogą być dowolne, np. Liczba.)1
4
: Naciśnij liczbę1
i4
na stos.START [...] NEXT
: Jak pętla for, ale bez dostępu do zmiennej licznika. Pobiera dwie liczby ze stosu (tutaj, po prostu wypchnęliśmy1
i4
) i wykonuje kod[...]
odpowiadające im czasy (tutaj, cztery razy).DUP
: Duplikuj ostatni wpis na stosie." "
: Wciśnij ciąg(tj. Ciąg z jedną spacją) na stos.
+
: Weź dwa obiekty ze stosu i zwróć je razem, dla łańcuchów: Połączone.4
: Wciśnij liczbę4
na stos.ROLLD
: Bierze ostatni element (tutaj:4
właśnie wypchnęliśmy) ze stosu i zrzuca następny element tak daleko w dół stosu, jak określa liczba, którą właśnie wzięliśmy ze stosu.SWAP
: Zamienia dwa ostatnie elementy stosu.2
: Naciśnij2
na stos.PICK
: Bierze element (tutaj:2
Właśnie wrzuciliśmy na stos), interpretuje go jako liczbę n i kopiuje n-ty element ze stosu.źródło
JavaScript, 28 bajtów
Spróbuj
źródło
c+'\n'+c
w postaci tymczasowej.Galaretka , 8 bajtów
1 bajt dzięki Erik the Outgolfer.
Wypróbuj online!
źródło
x4µ©;⁶;®œs3Y
12 bajtów, ponieważ nie mogłem wymyślić, jak uniknąć mnożenia całego mojego pośredniego kroku, ale miło!K
do prowadzeniaj⁶
. Aha, i jest szybkie,`
aby przekonwertować diadę na monadę, używając tego samego argumentu po obu stronach.Java 7,
5655 bajtów-1 Dzięki Dziurawej Zakonnicy za wskazanie miejsca, za którym tęskniłem
Po prostu zastępuje kropki danym znakiem, dla wejścia nr:
Wypróbuj online!
źródło
PHP, 32 bajty
Wypróbuj online!
źródło
<?=$a=$argn,"$a$a\n$a $a\n$a$a$a";
(rzeczywisty podział linii zamiast \ n oczywiście) ma dokładnie taką samą liczbę bajtów.sed,
2818 bajtówWypróbuj online!
źródło
:
. Naprawiony.Brain-Flak ,
7670 + 1 = 71 bajtówWymaga
-c
flagiWypróbuj online!
źródło
(()()()()()){}
się([])[]{}
.Pyth, 7 bajtów
Wypróbuj to online.
Wyjaśnienie:
źródło
Brain-Flak ,
61, 59 bajtówWypróbuj online!
Jest to 58 bajtów kodu
+1
bajtu dla-c
flagi, która umożliwia wejście i wyjście ASCII.Wyjaśnienie:
źródło
C (gcc) ,
4947 bajtówZaoszczędzono 2 bajty dzięki 2501!
Wypróbuj online! ma końcowy znak nowej linii
źródło
for(j=11;j;)...
Python 3 , 34 bajty
Wypróbuj online!
źródło
lambda x:x*3+'\n%s '%x+x+'\n'+x*3
Oktawa , 36 bajtów
Wypróbuj online!
Wyjaśnienie
Tworzy to macierz znaków 3x3 z powtarzanym znakiem wejściowym i ustawia swój piąty wpis w kolejności durowej kolumny (tj. Jego środek) na
32
(ASCII dla spacji).źródło
Pyke , 5 bajtów
Wypróbuj online!
źródło
Ruby ,
2725 bajtówZaoszczędź 2 bajty dzięki Level River St
Wypróbuj online!
źródło
f=...
), a następnie wywołać ją za pomocąf.call(...)
"\n"
dla zaoszczędzenia 1 bajtu. Jeszcze lepsze wykorzystanie,$/
która jest specjalną zmienną ustawioną domyślnie na nową linię - oszczędność 2 bajtów.tr
rozwiązanie. dobra robotaBrainfuck, 40 bajtów
Wypróbuj online! Wymaga implementacji, która może uzyskać dostęp z lewej strony pozycji początkowej.
Zobacz także: „ Gravitonowa odpowiedź”, która ma inne podejście (ale jest dłuższa).
Wyjaśnienie:
Brainfuck może wykonywać wiele fajnych sztuczek dzięki ograniczonemu zestawowi instrukcji. Niestety, ta odpowiedź nie korzysta z żadnej z nich, ponieważ taniej (pod względem bajtów) jest po prostu wszystko zaszyfrować.
# = znak wejściowy, _ = spacja (ASCII 32), \ n = nowa linia (ASCII 10)
Wyniki w tym pięknym polu (dla danych wejściowych „+”):
źródło
05AB1E ,
76 bajtów-1 bajt dzięki carusocomputing.
Wyjaśnienie:
Wykorzystuje kodowanie CP-1252 . Wypróbuj online!
źródło
ж¹ðJû
dla 6 bajtów.Pyt , 11 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło
> <> ,
2423 bajtówWypróbuj online!
źródło
Swift3, 50 bajtów
Wykorzystuje operator trójskładnikowy do drukowania różnych ciągów, w zależności od wiersza.
Wypróbuj online
źródło
V , 8 bajtów
Wypróbuj online!
źródło
<M-h>ollow
, Które pozwala wydrążyć wnętrze pudełka: Wypróbuj online!C #, 50 bajtów
Przypadek testowy:
źródło
Console
ieSystem.Console..
Vim, 9 naciśnięć klawiszy
Zakładając, że znak wejściowy jest obecny w buforze, vim upraszcza to
Prawdopodobnie są tu jakieś magiczne polecenia vima (zawsze wydaje się, że są), więc mile widziane są sugestie ulepszeń. Tylko jedno naciśnięcie klawisza za klawiszem V!
źródło
Zespół Z80 lub 8080, kod maszynowy 21 bajtów
Załóżmy, że urządzenie we / wy zamapowane w pamięci:
Tłumacz nie jest potrzebny!
Hexdump:
gdzie adres wejściowy to FF00h, a adres wyjściowy jest odwzorowany na FF01h. Rzeczywiste adresy będą zależeć od faktycznego sprzętu. Oczywiście zakłada to, że operacje we / wy są mapowane w pamięci. Jeśli jest mapowany we / wy, zajęłoby to kilka dodatkowych bajtów, ponieważ instrukcje we / wy Z80 i 8080 mają po dwa bajty. Zakłada się również, że urządzenie wyjściowe interpretuje 0Ah jako nową linię i nie wymaga CR (0Dh), który dodałby dodatkowe 4 bajty do programu.
źródło
J-uby ,
2220 bajtów-2 bajty dzięki @Jordan
Wyjaśnienie
String#tr
jest opartą na znakach metodą zamiany Ruby. Pierwszy&
wiąże:tr
się"...\n. .\n..."
z drugim, a częściowo częściowo się'.'
do niego odnosi . Rzeczywiście tak jest->s{"...\n. .\n...".tr('.',s)}
źródło
:tr
działałoby tak dobrze jak:gsub
tutaj?