Problem statement: Every upper case alphabet shifts to the left, for example if the alphabet D was left shifted by 3, it will become A, and E would become B, and so on..
I got the first two test cases correctly, but I got stuck at the third one that had a pound sign.
My trial:
sh = int(input())
s = input()
n = ""
for char in s:
val = ord(char)-sh
if char != " ":
if 65 <= val <= 90:
n += chr(val)
else:
if val < 65:
if '0' <= char <= '9':
n += char
else:
n += chr(90 - (65 - val - 1))
else:
n += char
print(n)
Test case 1:
(in1)>> 3
(in2)>> H3LL0 W0RLD
(out)>> E3II0 T0OIA
Test case 2:
(in1)>> 6
(in2)>> THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
(out)>> NBY KOCWE VLIQH ZIR DOGJM IPYL NBY FUTS XIA
Test case 3:
(input_num_1)>> 2
(input_num_2)>> H4IGDFDNO£PJNHVDKHZPDOPG2
(ExpectedOut)>> F4GEBDBLM\-62\-93NHLFTBIFXNBMNE2
(My_output_.)>> F4GEBDBLMNHLFTBIFXNBMNE2
Your help & and time to review this is seriously appreciated. Thank you.
Edit:
To add more clarity, I've added what my code yields as an output under the expected output, and to be specific, how/why is £ mapped to \-62\-93 ?