Meine frühere Herausforderung, unsichtbaren Text zu drucken, war ziemlich beliebt, wahrscheinlich weil es so trivial ist.
Diejenigen, die Sie genauer beobachten, haben jedoch möglicherweise bemerkt, dass Sie nicht wirklich unsichtbaren Text drucken, da es unmöglich ist, zu lesen, was nur bei der Ausgabe eingegeben wurde.
Also dachte ich mir, wie wäre es mit einer wirklich unsichtbaren Textherausforderung?
0x20-0x7EKonvertieren Sie bei einer Zeichenfolge, die nur aus druckbaren ASCII-Zeichen ( ) besteht, jedes Zeichen in ein bestimmtes Unicode-Zeichen (in UTF-8-Codierung), das nicht zu den 95 druckbaren ASCII-Zeichen (UTF-8-Zeichen außerhalb des 0x20-0x7EBereichs) gehört.
Eingang
Eine Zeichenfolge aus druckbaren ASCII-Zeichen, entweder als Zeichenfolge oder als Array / Liste von Zeichen
Ausgabe
Die Eingabezeichenfolge, wobei jedes Zeichen durch ein bestimmtes nicht druckbares Zeichen ersetzt wird. Jedes angegebene Zeichen muss ein entsprechendes nicht druckbares Zeichen enthalten, das nicht als Ersatz für ein anderes Zeichen verwendet wird.
Wenn Sie keine nicht druckbaren Zeichen drucken können, können Sie stattdessen die Zeichenwerte ausgeben.
Wenn Ihr Code beispielsweise alle Kleinbuchstaben adurch ersetzt 0x01, dürfen Sie 0x01keine anderen Zeichen ersetzen.
Ihr Code muss auch deterministisch sein . Dies bedeutet, dass, wenn in der angegebenen Zeichenfolge Helloalle Kleinbuchstaben ldurch ersetzt werden 0x03, Ihr Code auch alle Kleinbuchstaben ldurch 0x03eine beliebige andere Zeichenfolge ersetzen muss .
Testfälle
Es ist etwas schwierig, Testfälle für diese Herausforderung zu schreiben, daher zeige ich die Ausgabe einfach als Liste mit Hexcodes
input -> output
"Hello" -> [0x01, 0x02, 0x03, 0x03, 0x04]
"Hi!" -> [0x01, 0x05, 0x06]
"" -> []
" H " -> [0x07, 0x07, 0x07, 0x01, 0x07, 0x07, 0x07]
"yo! " -> [0x08, 0x04, 0x06, 0x07]
