키와 문자열 배열이 주어지면 각 요소가 키와 XOR 될 때 정렬되도록 배열을 섞습니다.
두 줄 XOR
키를 사용하여 문자열을 XOR하려면 키가 영원히 반복된다고 가정하고 문자열의 각 문자 값을 키의 쌍으로 XOR하십시오. 예를 들면 abcde^123
다음과 같습니다.
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
정렬
정렬은 항상 XOR의 문자열을 사 전적으로 수행해야합니다. 즉, 1 < A < a < ~
(ASCII 인코딩 가정)
예
"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"]
노트
- 키는 항상 1 자 이상이어야합니다.
- 키와 입력은 인쇄 가능한 ASCII로만 구성됩니다.
- XOR 문자열에는 인쇄 할 수없는 문자가 포함될 수 있습니다.
- 입력 및 출력은 합리적인 방법을 통해 수행 될 수 있습니다
- 표준 허점 은 금지되어 있습니다.
- 어떤 순서로든 키와 입력을 할 수 있습니다.
테스트 사례
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"]
이것은 code-golf 이므로 최소 바이트가 이깁니다!