Hackbright Code Challenges

Encipher a String

Encipher a String

Whiteboard

Medium

Challenge

Medium

Concepts

Strings, General

Download

encipher-string.zip

Solution

Encipher a String: Solution


The Caesar Cipher is a famous enciphering algorithm said to have been favored by Roman emperor, Julius Caesar. As legend has it, Caesar would scramble secret messages by shifting each character by 3. The table of plaintext characters vs. their encoded counterparts for the Caesar Cipher looks like this:

Plaintext

Encoded

A

D

B

E

C

F

X

A

Y

B

Z

C

The Caesar Cipher is a rotary cipher — a cipher used to encrypt or decrypt text by shifting and rotating letters in an alphabet. It’s not a very secure cipher though. It would be better if we could shift letters by any amount — not just 3!

Write a function to encode text using a rotary cipher with a variable shift. It should take in:

  • An integer — the number of times we should shift a letter

  • A string — the text to encode

The function should return the encoded text.

The given string might contain spaces, special characters, and/or numbers, but you should only shift the alphabetic characters — that is, A–Z and a–z. Be sure to preserve the capitalization of the original string.