Ich vergesse oft, was ich sagen wollte, wenn der Lehrer mich zum Sprechen aufruft. Können Sie mir ein Werkzeug machen, um das zu lösen?
Bedarf:
- Das Programm muss wie folgt wiederholt werden:
- Nehmen Sie zuerst die Eingabe auf
- Wenn die Eingabe leer ist, drucken Sie die zuletzt gespeicherte Frage.
- Andernfalls speichern Sie die Eingabe als Frage.
Anmerkungen:
- Die Eingabe wird niemals leer sein, wenn keine Fragen gespeichert sind.
Erläuterung: Das Programm muss nicht mehrere Fragen speichern. Ich wollte ursprünglich, dass es mehrere speichert, aber ich habe es geändert, nachdem viele Leute die Frage falsch verstanden haben.
Denken Sie daran, dies ist Code-Golf , also gewinnt der Code mit der geringsten Anzahl von Bytes.
Antworten:
Perl,
131714 +1 = 15 Bytes+1 für das
-n
Flag (4 Bytes dank @Dada gespeichert)Solange die Eingabe nicht dem Wagenrücklauf entspricht, speichert sie die Eingabe in
$;
. Wenn es dem Wagenrücklauf entspricht, wird gedruckt, was bereits vorhanden ist$;
.Dies setzt voraus, dass alle Eingaben als Fragen charakterisiert werden können, auch wenn sie grammatikalisch nicht so sind.
quelle
ne
stattdessen schreibeneq
(im Moment funktioniert das nicht)././
statt$/ne$_
;-)05AB1E,
121110 BytesDanke @daHugLenny und @Adnan für 1 Byte!
Danke @Emigna für 1 Byte!
quelle
®
und©
durchX
und ersetzenU
, benötigen Sie keinen Backslash.Haskell, 49 Bytes
Wie es funktioniert: Beginnen Sie mit
g ""
. Ders
Funktionsparameterg
ist die Frage im Laden.g
liest die nächste Zeile von stdin und übergibt sie (und auch s) an#
. Wenn die Zeile leer ist, wird#
der Speicher gedruckt undg
erneut angerufen . Wenn die Zeile nicht leer ist,g
wird sie mit der Zeile als neuer Speicher aufgerufen.quelle
JavaScript,
363431 BytesEine Endlosschleife fragt ständig nach Eingaben und speichert diese
b
. Wenn die Eingabe nicht leer ist, wird sie dann gespeicherta
, andernfalls wird der Wert vona
gedruckt.2 Bytes dank @ETHproductions gespeichert
quelle
1
, und ein anderes, indem Sieb?a=b:alert(a)
in den letzten Abschnitt innerhalb der for-Schleife (dhfor(a=0;;b?a=b:alert(a))b=prompt()
)a=0
ist auch nicht notwendig. Da die Eingabe nur leer sein kann, wenn Fragen gespeichert sind,a
wird sie nicht referenziert, wenn sie nicht zugewiesen wurde.Mathematica, 44 Bytes
Volles Programm. Das Unicode-Zeichen ist U + 221E INFINITY für
\[Infinity]
.quelle
Python 3, 31 Bytes
Versuch es!
-1 Byte dank Flp.Tkc
quelle
retikulär, 12 Bytes
Probieren Sie es online aus!
Erläuterung
quelle
Pyke, 6 Bytes
Probieren Sie es hier aus!
quelle
Python3 - 49 Bytes
quelle
NameError: name 'b' is not defined
b=input()
. Vielen Dank!Python 3, 34 Bytes
quelle
Python 3, 60 Bytes
quelle
CMD, 37 Bytes
Nimmt
set
leider keine leere Eingabe :(in einem Dateinamen
c.cmd
oderin einer beliebigen Datei. Arbeiten (
-
als leer verwenden):quelle
set/p
wird niemals eine Variable leer machen, also zumindestset a=
in der ersten Zeile; auch ich denke du meinstset b=%a%
.APLX, 19 Bytes
Erläuterung:
quelle
C
7363 BytesVerwendet nur 1 Puffer und ein einzelnes Zeichen für die Behandlung der Logik. Wenn der Benutzer nichts eingibt, wird nur das erste Zeichen im Puffer von überschrieben
'\0'
. In diesem Fall wird es wiederhergestelltx
und gedruckt. Andernfalls kopieren Sie den ersten Buchstabenx
zur späteren Verwendung in.Vorheriger Code:
quelle
Java 7,
189187178 Bytes ..-9 Bytes bei
new java.util.Scanner
direkter Verwendung dank @cliffroot .Wahrscheinlich das erste Mal, dass ich
do-while
eine Codegolf-Herausforderung verwendet habe.Wenn Funktionen anstelle von Programmen zulässig sind, sind es 135 Bytes (immer noch ein Vielfaches mehr als bei den meisten anderen Antworten.)
quelle
void c(){for(String s="",x;(x=new java.util.Scanner(System.in).nextLine())!=null;)if(x.isEmpty())System.out.println(s);else s=x;}
for
oderwhile
irgendwo? .. Was ist(x=new java.util.Scanner(System.in).nextLine())!=null;)
?void c(){for(String s="",x;for(x=new java.util.Scanner(System.in).nextLine())!=null;)if(x.isEmpty())System.out.println(s);else s=x;}
und es ist tatsächlich 1 Byte länger als die Version mitdo-while
-void c(){String s="",x;do{x=new java.util.Scanner(System.in).nextLine();if(x.isEmpty())System.out.println(s);else s=x;}while(1>0);}
sed, 10 Bytes
Erläuterung:
Schön zu sehen, dass eine exoterische (dh "nicht esoterische") Sprache mit einigen der Golfsprachen zusammenhängt!
quelle