Cifra digital

Na Cifra digital, a codificação é feita pela simples soma dos números da chave com os valores correspondentes aos caracteres de uma string de entrada.

Crie um método Program.digitalCipher que receba uma string message em letras minúsculas, seguida de um inteiro positivo key, e retorne o array codificado de inteiros.

Associe um número único a cada letra do alfabeto.

 a  b  c  d  e  f  g  h  i  j  k  l  m
 1  2  3  4  5  6  7  8  9  10 11 12 13
 n  o  p  q  r  s  t  u  v  w  x  y  z
 14 15 16 17 18 19 20 21 22 23 24 25 26

Existem algumas variações nas regras de cifragem. Uma delas é descrita abaixo:

String message = "scout";
int key = 1939;

Program.digitalCipher(message, key); // ➞ new int[]{20, 12, 18, 30, 21}

Escreva o número correspondente ao lado de cada caractere:

 s  c  o  u  t
19  3 15 21 20

Some a cada número obtido os dígitos consecutivos da chave:

   s  c  o  u  t
  19  3 15 21 20
 + 1  9  3  9  1
 ---------------
  20 12 18 30 21

Veja o exemplo abaixo para entender melhor:

message = "masterpiece"
key = 1939

Program.digitalCipher(message, key) ➞ [14, 10, 22, 29, 6, 27, 19, 18, 6, 12, 8]

   m  a  s  t  e  r  p  i  e  c  e
  13  1 19 20  5 18 16  9  5  3  5
+  1  9  3  9  1  9  3  9  1  9  3
  --------------------------------
  14 10 22 29  6 27 19 18  6  12 8

Exemplos

Program.digitalCipher("scout", 1939); // ➞ new int[]{20, 12, 18, 30, 21}

Program.digitalCipher("mubashir", 1990); // ➞ new int[]{14, 30, 11, 1, 20, 17, 18, 18}

Program.digitalCipher("edabit", 100); // ➞ new int[]{6, 4, 1, 3, 9, 20}

Notas

Gostou deste desafio? Tente decodificar sua mensagem cifrada aqui!