Solve View

Byte XOR

Create shortest possible program that calculates the XOR of bytes read from STDIN (newline not included). The XOR of the source code bytes (including newlines) must be 127.

Judge

(async function*(context: Context): Challenge {
	const simpleTestCases: [string, number][] = [
		["69", 15],
		["xx", 0],
		["aabbcc", 0],
		["hello world", 32],
		["🔥🔥🔥", 94],
		["배타적 논리합", 10],
		[" ...hey", 122],
		["trailing_space: ", 35],
	];
	const randomTestCases: [string, number][] = [
		["H75RVPyMOtkifQzDcCFp9B", 119],
		["SZYLf4c9KxI1Hk", 124],
		["GhSyiUpebC7WJzT38DP9", 47],
		["hAfTsC0UaOzHko2uxn", 7],
		["kyGcghs8XI0HA", 90],
		["aqtsBHPxY6Uv4ArRcGilTLhm", 16],
		["YFKV4b3esUSmMazOAtBfX", 74],
		["eDuyFs52b0iLjPYB", 73],
		["PN6ej3Y91V4kWfpJvbtla", 42],
		["lwQFucEWSIpyL37", 83],
		["BUVvXYbewnKzR", 75],
		["itjUkInfu0XNhRwLs", 41],
		["nLYVcA7zHsC426pmN", 89],
		["dyrh2wVYDvUMkx", 116],
		["nHe8aBIYbgG4VOts", 32],
		["diAxVgElob3YvfSu5nzQNy", 58],
		["EoPfNsWj01GngvIFKMy23", 84],
		["iLwj7CAEIMrduUQR", 121],
		["09erjtvPBOfSi7NQM5h6", 121],
		["FU2QHoiENfc97RO", 35],
		["g4Y1boysP6VMIiEm", 73],
		["JSlDe5NUT6ZMx3CBI8Vi", 11],
		["s0hogwGjPiumHdce5", 71],
		["OpwGlEuYcbdgeXH2UMtj", 73],
		["qIZLtlpcxH80i5gmwQ", 109],
		["qmlV4B8iMCD6SO19Fp", 95],
		["WyxLEibGjBueA", 106],
		["MqvKwcjHC8LA", 65],
		["3PgcIaA6S5NqzM", 86],
		["BbmGKHkz3Fuel5QM", 56],
		["stRwS2HDGAr8Tgn4I", 35],
		["kvF20W5bR1fAmoYlyX", 11],
		["pEh3i4rB2GM8ufUqcyaDF", 77],
		["74M6Ig1TJyRtfzeD", 27],
		["PG5Zh7VNqKiCrwLzHf", 50],
		["E2IJXWMw3BTq1UPx0ZHl", 23],
		["fw2N3xRStBZ9njd1", 35],
		["Mmp3qlwTfbt5Y9gBOPe2Loai", 62],
		["HncEB7PaRwQIUyAv81eGgYpL", 75],
		["r3ed9QOZEBhnFxiWP", 108],
		["nX813RlxFhUfmQKIV", 63],
		["TihWSxn7tA6JmeKYE9szoy", 64],
		["T184IODrnvNBVlA", 54],
		["jqof2WItGkQOcEP9xReuds1H", 99],
		["DHEQAuO6LiJ1", 11],
		["bodijcG6I20uxSmeNa9Cw", 71],
		["zxu0CZEv5f3rkY", 77],
		["KmyOvu12XdwIfq", 5],
		["tFsWfDvJ94OnTYrLpGN", 110],
		["kUwJtDC6aB9e1", 8],
		["KuZ7SqBVzoOY6Eh", 125],
		["3RtU8P9pCaQx", 106],
		["vIkeiOoBSxs4UmAKqN", 91],
		["RrKygUATJ0uC9Hz5lPi1EW", 49],
		["1BNZhS9t736rLITunVg", 42],
		["46IwJkEeQsPUXad90Or", 115],
		["FQ1lT5BmvqzDWC", 41],
		["5yRjr014vSsOELG", 100],
		["NUV8vrOd9WInfcP0YmCu5", 65],
		["b8ry7j4zNs1LhWnZEqOJH26f", 18],
		["nQVvqplFm5Jxbtz", 50],
		["V8G0gWNTRbUpsFq6ez", 75],
		["F5J9oxVrSh3kibYjAu2d4gUH", 68],
		["Qq5smcW1RaDSHxOf0rh73A9", 101],
	];
	yield* context.runTestCases(simpleTestCases);
	yield* context.runTestCases(randomTestCases);
	yield (await context.run("\n")).assertEquals("0");

	const utf8 = new TextEncoder();
	const code_xor = utf8.encode(context.code).reduce((a, b) => a^b);
    yield context.registerTestCase(new TestCase("Source Code XOR must be 127", code_xor === 127 ? "Pass" : "Fail", {
        Text: `Source code XOR: ${code_xor}`
    }));
	return context.noFailures();
})

Example Code

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
const utf8 = new TextEncoder();
rl.on('line', (input) => {
    let Xord = 0;
    for (let byte of utf8.encode(input)) {
        Xord ^= byte
    }
    console.log(Xord);
});

Comments