कुंजी को देखते हुए, और तार की एक सरणी, सरणी को फेरबदल करें ताकि यह तब छांटे जब प्रत्येक तत्व कुंजी के साथ XOR'd हो।
XOR'ing दो तार
कुंजी द्वारा स्ट्रिंग को 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'd तार के लेक्सोग्राफिक रूप से की जानी चाहिए। वह है, 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'd तार में गैर-मुद्रण योग्य वर्ण शामिल हो सकते हैं।
- इनपुट और आउटपुट उचित तरीकों के माध्यम से किया जा सकता है
- मानक ढीले निषिद्ध हैं।
- आप किसी भी क्रम में की और इनपुट ले सकते हैं।
परीक्षण के मामलों
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"]
यह कोड-गोल्फ है , इसलिए कम से कम बाइट्स जीतता है!