Inspiriert von dieser Herausforderung (danke an @cairdcoinheringaahing für den Titel!) Besteht Ihre Aufgabe darin, zwei druckbare ASCII-Zeichenfolgen zu nehmen und sie mit den folgenden Regeln elementweise zu multiplizieren.
Wie funktioniert es?
Bei zwei gegebenen Zeichenfolgen (zum Beispiel splitund isbn) kürzen Sie zuerst die längere Zeichenfolge so, dass sie die gleiche Länge hat, und bestimmen dann ihren ASCII-Code :
split -> spli -> [115, 112, 108, 105]
isbn -> isbn -> [105, 115, 98, 110]
Der nächste Schritt besteht darin, sie [0..94]durch Subtrahieren 32jedes Codes dem Bereich zuzuordnen :
[115, 112, 108, 105] -> [83, 80, 76, 73]
[105, 115, 98, 110] -> [73, 83, 66, 78]
Jetzt multiplizieren Sie sie elementweise modulo 95(um im druckbaren Bereich zu bleiben):
[83, 80, 76, 73] ⊗ [73, 83, 66, 78] -> [74, 85, 76, 89]
Hinzufügen 32, um zum Bereich zurückzukehren [32..126]:
[74, 85, 76, 89] -> [106, 117, 108, 121]
Und der letzte Schritt ist, sie wieder ASCII-Zeichen zuzuordnen:
[106, 117, 108, 121] -> "july"
Regeln
- Sie schreiben ein Programm / eine Funktion, die die beschriebenen Schritte in zwei Zeichenfolgen implementiert und die resultierende Zeichenfolge entweder ausgibt oder zurückgibt
- Das Eingabeformat ist flexibel: Sie können zwei Zeichenfolgen, ein Tupel von Zeichenfolgen, eine Liste von Zeichenfolgen usw. verwenden.
- Die Eingabe kann aus einer oder zwei leeren Zeichenfolgen bestehen
- Die Eingabe erfolgt in Zeichen im druckbaren Bereich (
[32..126]) - Die Ausgabe wird entweder auf die Konsole gedruckt oder Sie geben eine Zeichenfolge zurück
- Die Ausgabe darf abschließende Leerzeichen enthalten
Testfälle
"isbn", "split" -> "july"
"", "" -> ""
"", "I don't matter" -> ""
" ", "Me neither :(" -> " "
"but I do!", "!!!!!!!!!" -> "but I do!"
'quotes', '""""""' -> 'ck_iKg'
"wood", "hungry" -> "yarn"
"tray", "gzip" -> "jazz"
"industry", "bond" -> "drop"
"public", "toll" -> "fall"
"roll", "dublin" -> "ball"
"GX!", "GX!" -> "!!!"
"4 lll 4", "4 lll 4" -> "4 lll 4"
"M>>M", "M>>M" -> ">MM>"
Hinweis : Die Zitate sind nur zur besseren Lesbarkeit, ich im 6. Testfall verwendet 'statt ".
abc, def -> [['a', 'b', 'c'], ['d', 'e', 'f']]