Caesar Cipher


質問する



コード#コード#

def caesarCipher(s, k):
    c = ""

    for i in s:
        if i.islower():
            c += chr((ord(i)-97+k)%26+97)
        elif i.isupper():
            c += chr((ord(i)-65+k)%26+65)
        else:
            c+=i
    return c

問題を解く


> c += chr((ord(i)-97+k)%26+97)
1.ord()関数を使用して、最初のインデックス文字を10進数ASKIDコードに変換します.
2.x->a、y->b、z->cの反例を考える.
小文字-97大文字-65と問題で与えられたkを+とし、結果を26の残りの部分に求め、小文字と大文字を加算します.

ソース


https://www.hackerrank.com/challenges/one-month-preparation-kit-caesar-cipher-1/problem?h_l=interview&isFullScreen=false&playlist_slugs%5B%5D=preparation-kits&playlist_slugs%5B%5D=one-month-preparation-kit&playlist_slugs%5B%5D=one-month-week-two