Problem Statement
A common task for math students is to solve 'word math' questions, where each distinct letter represents a distinct digit.
Given a list of word math numbers to add, your task is to calculate the greatest possible sum of those numbers.
For example, given the expression:
Please note that, for this question, word math numbers are allowed to start with a zero.
Given a list of word math numbers to add, your task is to calculate the greatest possible sum of those numbers.
For example, given the expression:
TOP
+ CODER
the maximum sum possible by substituting numbers is:
783
+ 98654
-------
99437
with C = 9, D = 6, E = 5, O = 8, P = 3, R = 4 and T = 7.
Please note that, for this question, word math numbers are allowed to start with a zero.
Definition
- Class:
- WordMath
- Method:
- maximumSum
- Parameters:
- String[]
- Returns:
- int
- Method signature:
- int maximumSum(String[] summands)
- (be sure your method is public)
Notes
- Different letters must represent different digits, identical letters must represent identical digits.
- Not all digits in the result must appear in the summands.
Constraints
- summands will contain between 1 and 10 elements, inclusive.
- Each element of summands will contain between 1 and 8 characters, inclusive.
- Each element of summands will contain only uppercase letters ('A'-'Z').
- summands will contain at most 10 distinct letters.
Examples
{"TOP", "CODER"}Returns: 99437
The example given in the problem statement.{"AAA", "AAA"}Returns: 1998
With only one letter, the maximum sum is obtained by setting A = 9.{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"}Returns: 45
Each letter is used once, and there are 10 different letters, so however the digits are distributed this must add up to 0 + 1 + ... + 8 + 9 = 45{"AB", "BA"}Returns: 187
{"READIEST","OPERATIC","TOPCODER","PREDICTS","RAPIDEST","ASTEROID","AIRSPEED"}Returns: 563639653