Statistics

Problem Statement for "SubstitutionCode"

Problem Statement

A simple, easy to remember system for encoding integer amounts can be very useful. For example, dealers at flea markets put the information about an item on a card that they let potential buyers see. They find it advantageous to encode the amount they originally paid for the item on the card.

A good system is to use a substitution code, in which each digit is encoded by a letter. An easy to remember 10-letter word or phrase, the key, is chosen. Every '1' in the value is replaced by the first letter of the key, every '2' is replaced by the second letter of the key, and so on. Every '0' is replaced by the last letter of the key. Letters that do not appear in the key can be inserted anywhere without affecting the value represented by the code.. This helps to make the resulting code much harder to break (without knowing the key).

Create a class SubstitutionCode that contains the method getValue that is given the Strings key and code as input and that returns the decoded value.

Definition

Class:
SubstitutionCode
Method:
getValue
Parameters:
String, String
Returns:
int
Method signature:
int getValue(String key, String code)
(be sure your method is public)

Constraints

  • code contains between 1 and 9 characters inclusive, all uppercase letters 'A'-'Z'
  • code contains at least one letter that is found in key
  • key contains exactly 10 uppercase letters 'A'-'Z', all distinct from each other

Examples

  1. "TRADINGFEW"

    "LGXWEV"

    Returns: 709

    The L,X, and V are ignored since they do not appear in the key. G is the seventh letter in the key, W is the 10th letter, and E is the 9th letter.

  2. "ABCDEFGHIJ"

    "XJ"

    Returns: 0

  3. "CRYSTALBUM"

    "MMA"

    Returns: 6

  4. "ABCDEFGHIJ"

    "BLKVA"

    Returns: 21

  5. "KLMNOPQRST"

    "P"

    Returns: 6

  6. "ABCDEFGHIJ"

    "JAJAJAJAX"

    Returns: 1010101

  7. "ABCDEFGHIJ"

    "IXJYXIJAX"

    Returns: 90901

  8. "ACFHTBDEGQ"

    "QGEDBTHFC"

    Returns: 98765432

  9. "ABCDEFGHIJ"

    "JJJJJJJJJ"

    Returns: 0

  10. "ABCDEFGHIJ"

    "XDJYXDJ"

    Returns: 4040

  11. "ABCDEFGZYX"

    "YAZLDKSMN"

    Returns: 9184

  12. "FREAKYQUIP"

    "ZBFEK"

    Returns: 135

  13. "PLASTERWIG"

    "ASTERWIX"

    Returns: 3456789

  14. "FGHIJKLMNO"

    "ABKAOAK"

    Returns: 606

  15. "ABCDEFGHIJ"

    "I"

    Returns: 9

  16. "THREWAKING"

    "DIJKLSIY"

    Returns: 878

  17. "CRYSTALBUM"

    "MMA"

    Returns: 6

  18. "ABCDEFGHIJ"

    "BCA"

    Returns: 231

  19. "ABCDEFGHIJ"

    "C"

    Returns: 3

  20. "TRADINGFEW"

    "LGXWEVTA"

    Returns: 70913

  21. "TRADINGFEW"

    "LGXWEV"

    Returns: 709

  22. "ABCDEFGHIW"

    "ABDRYHGOW"

    Returns: 124870

  23. "ABCDEFGHIJ"

    "XJABJ"

    Returns: 120

  24. "ABCDEFGHIJ"

    "BABA"

    Returns: 2121

  25. "CRYSTALBUM"

    "MMA"

    Returns: 6

  26. "ABCDEFGHIJ"

    "AAABCDEFG"

    Returns: 111234567

  27. "LRADINGFEW"

    "LGXWEV"

    Returns: 1709

  28. "TRADINGFEW"

    "LGXWEVFAF"

    Returns: 709838


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: