Es gibt verschiedene Möglichkeiten, Header für Posts im Stack Exchange-Netzwerk zu erstellen. Das Format , das die meisten ist gewöhnlich 1 auf PPCG verwendet zu sein scheint:
# Level one header
## Level two header
### Level three header
Beachten Sie das Leerzeichen nach den Rautezeichen. Beachten Sie außerdem, dass nachfolgende Hash-Marken nicht enthalten sind.
Herausforderung:
Nehmen Sie eine (möglicherweise mehrzeilige) Zeichenfolge als Eingabe und geben Sie die Zeichenfolge in folgendem Format aus:
- Wenn der Header Level 1 ist, wird jeder Buchstabe 4 mal 4 ausgegeben
- Wenn der Header Level 2 ist, wird jeder Buchstabe 3 mal 3 ausgegeben
- Wenn der Header Level 3 ist, wird jeder Buchstabe 2-mal ausgegeben
- Wenn eine Zeile keine Kopfzeile ist, geben Sie sie so aus, wie sie ist.
Um zu veranschaulichen:
--- 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!!
So einfach ist das!
Regeln:
- Sie müssen die Eingabe über mehrere Zeilen unterstützen. Die Verwendung von
\n
etc. für Zeilenumbrüche ist in Ordnung.- Es wird keine Zeile geben, in der nur ein
#
Leerzeichen folgt
- Es wird keine Zeile geben, in der nur ein
- Die Ausgabe muss mehrzeilig erfolgen. Sie können
\n
anstelle von wörtlichen Zeilenumbrüchen keine Ausgaben vornehmen.- Leerzeichen und Zeilenumbrüche sind in Ordnung.
Testfälle:
Eingabe und Ausgabe sind durch eine Linie von getrennt ...
.
# 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: Ich habe nicht wirklich nachgesehen, aber ich denke es ist wahr.
Antworten:
Gestapelt ,
51 bis50 BytesDank @RickHitchcock - golfed regex 1 Byte gespart
Probieren Sie es online!
Anonyme Funktion, die Eingaben vom Stapel entgegennimmt und auf dem Stapel belässt.
Erläuterung
quelle
JavaScript (ES6),
111 bis105 Byte6 Bytes gespart dank @Shaggy
Stimmt mit 1-3 Hashes am Anfang der Zeichenfolge überein oder mit einer vorangestellten neuen Zeile, und wiederholt dann jedes Zeichen in der Übereinstimmung zusammen mit der Übereinstimmung selbst, basierend auf der Länge der Hashes.
Testfälle:
Code-Snippet anzeigen
quelle
Retina ,
125104 BytesProbieren Sie es online aus
21 Bytes dank Neil gespart.
quelle
%)
in der dritten Stufe verwenden, um die%
s in den ersten beiden Stufen zu entfernen . Außerdem fügt man normalerweiseG
die(
Nachkommastellen (von denen Sie jetzt zwei benötigen) in die Kopfzeile ein.m)
oder verwenden,m(
was jetzt 9 Bytes spart, weil du dann alle anderenm
s entfernen kannst .MATL ,
434240 Bytes1 Byte entfernt dank Rick Hitchcock !
Dadurch wird in jeder Zeile ein Leerzeichen nachgestellt (gemäß der Abfrage zulässig) und nach der Ausgabe ein Fehler ausgegeben (standardmäßig zulässig).
Probieren Sie es online!
Erläuterung
quelle
repelem
(Y"
in MATL) 2 Byte kürzer ist .kron
ist wohl immer noch der kürzeste Weg in MATLABPerl 5, 47 + 1 (-p) Bytes
versuche es online
quelle
Kohle , 46 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Da Charcoal keine String-Array-Eingabe ausführt, musste ich die Array-Länge als Eingabe hinzufügen. Erläuterung:
Durchlaufen Sie die entsprechende Anzahl von Eingabezeichenfolgen.
Erstellen Sie ein Array von Zeichenfolgen, indem Sie die Eingabe nehmen und bis zu 2 #s voranstellen, dann auf Länge 4 kürzen, dann versuchen,
###
im Array zu suchen , und dann in 1-Indizierung konvertieren. Dies ergibt eine Zahl, die um eins kleiner ist als der Buchstabe zoom.Wenn der Buchstabe zoom 1 ist, schleifen Sie über die gesamte Zeichenfolge, andernfalls über das entsprechende Suffix (das in Charcoal unangemessen schwer zu extrahieren ist).
Zeichnen Sie ein Polygon, das mit dem Buchstaben in der oberen rechten Ecke endet, und bewegen Sie sich dann nach rechts, um den nächsten Buchstaben zu erhalten.
Drucken Sie die Ausgabe und setzen Sie sie für die nächste Eingabezeichenfolge zurück.
quelle
SOGL V0.12 ,
3128 BytesProbieren Sie es hier aus! - Zusätzlicher Code hinzugefügt, da der Code eine Funktion ist und Eingaben auf dem Stack akzeptiert (SOGL kann ansonsten keine mehrzeiligen Eingaben akzeptieren: /). - Diese
inputs.value”
Zeichenfolge pushen.→
- Als JS auswerten.F
- Diese Funktion aufrufenErläuterung:
quelle
Proton , 130 Bytes
Probieren Sie es online!
quelle
\n
, aber die Ausgabe sollte mit wörtlichen Zeilenumbrüchen angezeigt werden.5-
da rein zu stellen . EntschuldigungPython 3 , 147 Bytes
Probieren Sie es online!
-1 Byte danke an Herrn Xcoder
quelle
5-
da rein zu stellen . EntschuldigungC # (.NET Core) , 268 + 18 Byte
Probieren Sie es online!
quelle
Python 3 , 131 Bytes
Probieren Sie es online!
Ich habe Python 3 verwendet, um es
[]
mit Regex zu verwenden.quelle
PHP, 122 + 1 Bytes
Laufen Sie als Pipe mit
-nR
(funktioniert auf einer Eingabezeile nach der anderen) oder versuchen Sie es online .quelle
J , 55 Bytes
Ich weiß nicht, wie TIO mit J Regex funktioniert, daher kann ich keinen funktionierenden Link bereitstellen.
So testen Sie es im J-Interpreter (getestet mit J804)
Ich simuliere eine mehrzeilige Zeichenfolge durch eine Liste von geschachtelten Zeichenfolgen.
quelle
Python 2 ,
126124117 BytesProbieren Sie es online!
oder
Probieren Sie es online!
quelle
JavaScript, 112 Bytes
Code-Snippet anzeigen
quelle
#### ##
.C # 4.5 158 Bytes
Wobei i die Eingabe in Form eines Strings ist.
quelle