Problem 42525. Vigenere cipher - be like Sherlock Holmes!
You're a young detective. Every detective needs a function to decrypt a vigenère cipher. It's a modification of a caesar cipher.
Let's talk more about the algorithm:
- Every letter is a number. A=0, B=1, C=2, (...), Z=26
- Output should be presented in capital letters.
- Use ONLY letters. Without interpunction, spaces, etc
- Function has two arguments: encrypted text and key (both are strings). Your output will present a decrypted text. Let's show it on easy example from http://en.algoritmy.net/article/45623/Vigenere-cipher
Ciphertext : CTMCCD, Key : Cat
C – C = 2 – 2 = 0 = A
T – A = 19 – 0 = 19 = T
M – T = 12 – 19 = 19 = T
C – C = 2 – 2 = 0 = A
C – A = 2 – 0 = 2 = C
D – T = 3 – 19 = 10 = K
decrypted word: ATTACK
It's quite simple,right? Good luck!
Solution Stats
Problem Comments
-
6 Comments
you should add a test case like GrantII does in his 'divisible by X' problems...
http://www.mathworks.com/matlabcentral/cody/problems/42408-divisible-by-6
thanks for advice! done! :)
Your testsuite is still incomplete. I recommend you to include cases where Ciphertext and Key both contain upper and lower case letters
Please kindly note that your test case 3 (a='az' b='za' y_correct='zz') is wrong. If you re-score all solutions, I think none of them would pass this test case. However, you may need to re-score multiple times because ind = randi(3) does not necessarily yield ind = 3.
thanks, I missed that mistake. it should be ok right now.
"A=0, B=1, C=2, (...), Z=26"
Shouldn't Z be 25?
Solution Comments
Show commentsProblem Recent Solvers27
Suggested Problems
-
Numbers with prime factors 2, 3 and 5.
586 Solvers
-
Selecting books on MATLAB for experts and beginners (blindfolded)
77 Solvers
-
444 Solvers
-
690 Solvers
-
Change the first and last diagonal element of the identity matrix to zero
154 Solvers
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!