[アルゴリズム/規格]1655:ROT 13(python)



資料構造を利用して解いた...アスキーコードを利用して、アルファベットの範囲を超えたら-13、超えなければ+13をあげます.
a = list(input())
stack = []

while a:
    i = a.pop()
    if i.isalpha():
        if (i.isupper() and ord(i) + 13 > 90) or i.islower() and ord(i) + 13 > 122:
            stack.append(chr(ord(i) - 13))
        else:
            stack.append(chr(ord(i) + 13))
    else:
        stack.append(i)
print(*reversed(stack), sep='')