Istnieje kilka sposobów tworzenia nagłówków we wpisach w sieci Stack Exchange. Format to najczęściej 1 używany na PPCG wydaje się być:
# Level one header
## Level two header
### Level three header
Zwróć uwagę na spację po znakach skrótu. Pamiętaj też, że końcowe znaki skrótu nie są uwzględniane.
Wyzwanie:
Weź jako dane wejściowe (być może wielowierszowy) ciąg i wyślij go w następującym formacie:
- Jeśli nagłówek ma poziom 1, wypisz każdą literę 4 na 4 razy
- Jeśli nagłówek ma poziom 2, wypisz każdą literę 3 na 3 razy
- Jeśli nagłówek ma poziom 3, wypisz każdą literę 2 razy 2 razy
- Jeśli linia nie jest nagłówkiem, wypisz ją taką, jaka jest.
Ilustrować:
--- Level 1 ---
# Hello
--- Output---
HHHHeeeelllllllloooo
HHHHeeeelllllllloooo
HHHHeeeelllllllloooo
HHHHeeeelllllllloooo
--- Level 2 ---
## A B C def
--- Output ---
AAA BBB CCC dddeeefff
AAA BBB CCC dddeeefff
AAA BBB CCC dddeeefff
--- Level 3 ---
### PPCG!
--- Output---
PPPPCCGG!!
PPPPCCGG!!
Proste!
Zasady:
- Musisz obsługiwać wprowadzanie przez wiele wierszy. Używanie
\n
itp. Dla nowych linii jest OK.- Nie będzie linii zawierających tylko
#
jedno miejsce po nim
- Nie będzie linii zawierających tylko
- Dane wyjściowe muszą być prezentowane w wielu wierszach. Nie możesz generować
\n
zamiast dosłownych znaków nowej linii.- Końcowe spacje i znaki nowej linii są prawidłowe.
Przypadki testowe:
Wejścia i wyjścia są oddzielone linią ...
.
# This is a text
with two different
### headers!
........................................................
TTTThhhhiiiissss iiiissss aaaa tttteeeexxxxtttt
TTTThhhhiiiissss iiiissss aaaa tttteeeexxxxtttt
TTTThhhhiiiissss iiiissss aaaa tttteeeexxxxtttt
TTTThhhhiiiissss iiiissss aaaa tttteeeexxxxtttt
with two different
hheeaaddeerrss!!
hheeaaddeerrss!!
This input has
## trailing hash marks ##
#and a hash mark without a space after it.
........................................................
This input has
tttrrraaaiiillliiinnnggg hhhaaassshhh mmmaaarrrkkksss ######
tttrrraaaiiillliiinnnggg hhhaaassshhh mmmaaarrrkkksss ######
tttrrraaaiiillliiinnnggg hhhaaassshhh mmmaaarrrkkksss ######
#and hash marks without a space after it.
# This ## is ### strange
#### ###
........................................................
TTTThhhhiiiissss ######## iiiissss ############ ssssttttrrrraaaannnnggggeeee
TTTThhhhiiiissss ######## iiiissss ############ ssssttttrrrraaaannnnggggeeee
TTTThhhhiiiissss ######## iiiissss ############ ssssttttrrrraaaannnnggggeeee
TTTThhhhiiiissss ######## iiiissss ############ ssssttttrrrraaaannnnggggeeee
#### ###
Multiple
### newlines! #
:)
........................................................
Multiple
nneewwlliinneess!! ##
nneewwlliinneess!! ##
:)
Line with only a hash mark:
#
### ^ Like that!
........................................................
Line with only a hash mark:
#
^^ LLiikkee tthhaatt!!
^^ LLiikkee tthhaatt!!
1: Tak naprawdę nie sprawdziłem, ale myślę, że to prawda.
Odpowiedzi:
Skumulowane ,
5150 bajtówZaoszczędzono 1 bajt dzięki @RickHitchcock - regex golfowy
Wypróbuj online!
Anonimowa funkcja, która pobiera dane wejściowe ze stosu i pozostawia je na stosie.
Wyjaśnienie
źródło
JavaScript (ES6),
111105 bajtówZaoszczędź 6 bajtów dzięki @Shaggy
Dopasowuje 1-3 skrótów na początku łańcucha lub poprzedzony nowym wierszem, a następnie powtarza każdy znak w dopasowaniu wraz z samym dopasowaniem, na podstawie długości skrótów.
Przypadki testowe:
Pokaż fragment kodu
źródło
Siatkówka ,
125104 bajtówWypróbuj online
Zaoszczędzono 21 bajtów dzięki Neilowi.
źródło
%)
trzeciego etapu, który pozwala usunąć%
s z pierwszych dwóch etapów. Również jeden zwykle umieszczaG
po(
nagłówku s (z których teraz będziesz potrzebować dwóch).m)
lub,m(
który teraz oszczędza 9 bajtów, ponieważ możesz następnie usunąć wszystkie pozostałem
.MATL ,
434240 bajtów1 bajt usunięty dzięki Rickowi Hitchcockowi !
To generuje końcowe miejsce w każdej linii (dozwolone przez wyzwanie) i kończy się z błędem (domyślnie dozwolonym) po wygenerowaniu wyjścia.
Wypróbuj online!
Wyjaśnienie
źródło
repelem
(Y"
w MATL).kron
jest prawdopodobnie prawdopodobnie najkrótszą drogą w MATLABPerl 5, 47 +1 (-p) bajtów
spróbuj online
źródło
Węgiel drzewny , 46 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Węgiel drzewny tak naprawdę nie wprowadza danych z tablicy ciągów, więc musiałem dodać długość tablicy jako dane wejściowe. Wyjaśnienie:
Pętla nad odpowiednią liczbą ciągów wejściowych.
Utwórz tablicę ciągów, pobierając dane wejściowe i poprzedzając je do 2 #, następnie skracając do długości 4, a następnie spróbuj znaleźć
###
w tablicy, a następnie przekonwertuj na indeksowanie 1. Powoduje to, że liczba jest o jeden mniejsza niż powiększenie litery.Jeśli powiększenie liter wynosi 1, to zapętlaj cały łańcuch, w przeciwnym razie zapętlaj odpowiedni sufiks (co jest nieuzasadnione trudne do wyodrębnienia z węgla drzewnego).
Narysuj wielokąt wypełniony literą kończącą się w prawym górnym rogu, a następnie przejdź w prawo, gotowa na następną literę.
Wydrukuj wyjście i zresetuj gotowe do następnego ciągu wejściowego.
źródło
SOGL V0.12 ,
3128 bajtówWypróbuj tutaj! - dodano dodatkowy kod, ponieważ kod jest funkcją i pobiera dane wejściowe ze stosu (SOGL nie może przyjmować danych wejściowych wielowierszowych w przeciwnym razie: /) -
inputs.value”
- wypycha ten ciąg,→
- ocenia jako JS,F
- wywołać tę funkcjęWyjaśnienie:
źródło
Proton , 130 bajtów
Wypróbuj online!
źródło
\n
, ale dane wyjściowe powinny być wyświetlane dosłownie znakami nowej linii.5-
tam. PrzepraszamyPython 3 , 147 bajtów
Wypróbuj online!
-1 bajt dzięki Mr. Xcoder
źródło
5-
tam. PrzepraszamyC # (.NET Core) , 268 + 18 bajtów
Wypróbuj online!
źródło
Python 3 , 131 bajtów
Wypróbuj online!
Użyłem Python 3 w celu użycia
[]
z wyrażeniem regularnym.źródło
PHP, 122 + 1 bajtów
Uruchom jako potok z
-nR
(będzie działał na jednej linii wejściowej po drugiej) lub wypróbuj online .źródło
J , 55 bajtów
Nie wiem, jak sprawić, by TIO działało z J regex, więc nie mogę zapewnić działającego łącza.
Oto jak to przetestować w interpreterie J (testowane z J804)
Symuluję ciąg wielowierszowy poprzez listę ciągów w ramkach.
źródło
Python 2 ,
126124117 bajtówWypróbuj online!
lub
Wypróbuj online!
źródło
JavaScript, 112 bajtów
Pokaż fragment kodu
źródło
#### ##
.C # 4,5 158 bajtów
Gdzie i to dane wejściowe w postaci ciągu.
źródło