Statistics

Problem Statement for "VerySecureEncryption"

Problem Statement

You are going to send a message to your friend. The message is given as the String message. To confuse potential eavesdroppers, you are going to scramble the message.

Scrambling of a message is performed using the int[] key. If a letter is at the (0-based) position i in the original message, it will appear at the position key[i] in the scrambled message. (The constraints given below guarantee that this process will produce a valid scrambled message.)

To make the encryption even more confusing, you are going to repeat the above process K times in a row. Given message, key, and the int K, find and return the final encrypted message.

Definition

Class:
VerySecureEncryption
Method:
encrypt
Parameters:
String, int[], int
Returns:
String
Method signature:
String encrypt(String message, int[] key, int K)
(be sure your method is public)

Constraints

  • N will be between 1 and 10, inclusive.
  • message will contain N characters.
  • Each character of message will be a lowercase English letter.
  • key will contain N elements.
  • Each element of key will be between 0 and N-1, inclusive.
  • The elements of key will be distinct.
  • K will be between 1 and 50, inclusive.

Examples

  1. "abc"

    {1,2,0}

    1

    Returns: "cab"

    The character 'a' will go from position 0 to position key[0]=1. The character 'b' will go from position 1 to position key[1]=2. The character 'c' will go from position 2 to position key[2]=0.

  2. "abcde"

    {4, 3, 2, 1, 0}

    1

    Returns: "edcba"

  3. "abcde"

    {4, 3, 2, 1, 0}

    2

    Returns: "abcde"

    This is the same message and the same key as in example 1, but now K=2, so we scramble the message twice. For this particular key we see that each scrambling reverses the order of letters, which means that the final message is the same as the original we started with.

  4. "uogcodlk"

    {4, 3, 6, 2, 5, 1, 0, 7}

    44

    Returns: "goodluck"

  5. "k"

    {0}

    34

    Returns: "k"

  6. "yq"

    {0,1}

    50

    Returns: "yq"

  7. "hzq"

    {2,1,0}

    40

    Returns: "hzq"

  8. "omch"

    {0,3,2,1}

    47

    Returns: "ohcm"

  9. "mpeit"

    {1,2,3,0,4}

    1

    Returns: "impet"

  10. "efcxbn"

    {2,0,1,4,5,3}

    11

    Returns: "cefbnx"

  11. "ospuuqo"

    {2,3,5,6,4,0,1}

    30

    Returns: "ospuuqo"

  12. "pyoncpoi"

    {5,2,3,7,6,0,1,4}

    50

    Returns: "pcoynpio"

  13. "ijqztpkmb"

    {1,0,2,8,5,4,3,7,6}

    35

    Returns: "jiqbptzmk"

  14. "rsjuscwybr"

    {6,0,8,5,4,3,2,9,7,1}

    50

    Returns: "srwuscrbjy"

  15. "uogcodlk"

    {4, 3, 6, 2, 5, 1, 0, 7 }

    44

    Returns: "goodluck"

  16. "abcde"

    {4, 3, 2, 1, 0 }

    1

    Returns: "edcba"

  17. "abc"

    {1, 2, 0 }

    1

    Returns: "cab"


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: