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-0x7E
Konvertieren 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-0x7E
Bereichs) 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 a
durch ersetzt 0x01
, dürfen Sie 0x01
keine anderen Zeichen ersetzen.
Ihr Code muss auch deterministisch sein . Dies bedeutet, dass, wenn in der angegebenen Zeichenfolge Hello
alle Kleinbuchstaben l
durch ersetzt werden 0x03
, Ihr Code auch alle Kleinbuchstaben l
durch 0x03
eine 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]