RosettaCodeData/Task/Caesar-cipher/Nanoquery/caesar-cipher.nanoquery

36 lines
836 B
Text
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
def caesar_encode(plaintext, shift)
2026-02-01 16:33:20 -08:00
uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
lowercase = "abcdefghijklmnopqrstuvwxyz"
2023-07-01 11:58:00 -04:00
2026-02-01 16:33:20 -08:00
cipher = ""
for char in plaintext
if char in uppercase
cipher += uppercase[uppercase[char] - (26 - shift)]
else if char in lowercase
cipher += lowercase[lowercase[char] - (26 - shift)]
else
cipher += char
end
end
2023-07-01 11:58:00 -04:00
2026-02-01 16:33:20 -08:00
return cipher
2023-07-01 11:58:00 -04:00
end
def caesar_decode(cipher, shift)
2026-02-01 16:33:20 -08:00
uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
lowercase = "abcdefghijklmnopqrstuvwxyz"
2023-07-01 11:58:00 -04:00
2026-02-01 16:33:20 -08:00
plaintext = ""
for char in cipher
if char in uppercase
plaintext += uppercase[uppercase[char] - shift]
else if char in lowercase
plaintext += lowercase[lowercase[char] - shift]
else
plaintext += char
end
end
2023-07-01 11:58:00 -04:00
2026-02-01 16:33:20 -08:00
return plaintext
2023-07-01 11:58:00 -04:00
end