Dada una clave y una serie de cadenas, baraje la matriz para que se ordene cuando cada elemento se XOR con la clave.
XOR'ing dos cuerdas
Para XOR una cadena por una clave, XOR cada uno de los valores de caracteres de la cadena por su par en la clave, suponiendo que la clave se repita para siempre. Por ejemplo, se abcde^123
ve así:
a b c d e
1 2 3 1 2
--------------------------------------------
01100001 01100010 01100011 01100100 01100101
00110001 00110010 00110011 00110001 00110010
--------------------------------------------
01010000 01010000 01010000 01010101 01010111
--------------------------------------------
P P P U W
Clasificación
La clasificación siempre debe hacerse lexicográficamente de las cadenas XOR'd. Es decir, 1 < A < a < ~
(suponiendo la codificación ASCII)
Ejemplo
"912", ["abcde", "hello", "test", "honk"]
-- XOR'd
["XSQ]T", "QT^U^", "MTAM", "Q^\R"]
-- Sorted
["MTAM", "QT^U^", "Q^\R", "XSQ]T"]
-- Converted back
["test", "hello", "honk", "abcde"]
Notas
- La clave siempre tendrá al menos 1 carácter.
- La clave y la entrada solo consistirán en ASCII imprimible.
- Las cadenas XOR'd pueden contener caracteres no imprimibles.
- La entrada y salida se puede hacer a través de los métodos razonables
- Las lagunas estándar están prohibidas.
- Puede tomar Clave y Entrada en cualquier orden.
Casos de prueba
key, input -> output
--------------------
"912", ["abcde", "hello", "test", "honk"] -> ["test", "hello", "honk", "abcde"]
"taco", ["this", "is", "a", "taco", "test"] -> ["taco", "test", "this", "a", "is"]
"thisisalongkey", ["who", "what", "when"] -> ["who", "what", "when"]
"3", ["who", "what", "when"] -> ["what", "when", "who"]
Este es el código de golf , ¡por lo que gana menos bytes!