For example: Julius Caesar protected his confidential information by encrypting it in a cipher. Caesar’s cipher rotated every letter in a string by a fixed number, K
, making it unreadable by his enemies. Given a string,S
, and a number,K
, encrypt S.
Note: The cipher only encrypts letters; symbols, such as -
, remain unencrypted.
func cipher(messageToCipher: String, k: Int)-> String{ var eMessage = "" let arr = messageToCipher.characters.map { String($ 0) } for ch in arr { for code in String(ch).utf8 { if (65<=code && code<=90) || (97<=code && code<=122) { if k > 26{ let value = k % 26 == 0 ? k / 26 : k % 26 var pCode = ((Int(code)) + (value)) if (pCode > 122 && (97<=code && code<=122)) || (pCode > 90 && (65<=code && code<=90)) { pCode = pCode - 26 } let s = String(UnicodeScalar(UInt8(pCode))) eMessage = eMessage + s }else { var pCode = Int(code) + k if (pCode > 122 && (97<=code && code<=122)) || (pCode > 90 && (65<=code && code<=90)) { pCode = pCode - 26 } let s = String(UnicodeScalar(UInt8(pCode))) eMessage = eMessage + s } } else{ eMessage = eMessage + ch } } } return eMessage } print(cipher(messageToCipher: "abc", k: 2) )
I solved this way and it was passed all test case
More information this problem set : Caesar Cipher