Problem Statement
The number 31143310 is self-describing because we can read it as the statement "this number contains three '1's, one '4's, three '3's, and one '0'", and that statement correctly describes the whole number.
More formally, a number is called self-describing if it satisfies the following:
- It has an even number of digits. Below, we will label the individual digits a[0], b[0], a[1], b[1], ... from the left to the right.
- The digits b[i] are all distinct.
- For each valid i, the number contains exactly a[i] copies of the digit b[i].
- The number does not contain any other digits, except for those described by the statements mentioned above.
You are given the
Definition
- Class:
- SelfDescFind
- Method:
- construct
- Parameters:
- int[]
- Returns:
- String
- Method signature:
- String construct(int[] digits)
- (be sure your method is public)
Notes
- Watch out for integer overflow.
Constraints
- digits will contain between 1 and 10 elements, inclusive.
- Each element of digits will be between 0 and 9, inclusive.
- The elements of digits will form a strictly increasing sequence.
Examples
{1}
Returns: ""
{2}
Returns: "22"
The smallest self-describing number is 22. It contains two '2's, and it says about itself that it contains two '2's.
{0,1,3,4}
Returns: "10143133"
{0,1,2,4,5,6,8,9}
Returns: ""
{0,1,2,3,5,6,8,9}
Returns: "1016181923253251"
{4}
Returns: ""
Note that 4444 is not a valid self-describing number.
{0, 2, 3, 4, 5, 6, 7, 8}
Returns: ""
{0, 1, 3, 4, 5, 6, 8, 9}
Returns: ""
{0, 1, 2, 3, 4, 5, 6, 7}
Returns: "1014161723253251"
{1, 2, 3, 4, 5, 6, 7, 8}
Returns: "1416171823253251"
{0, 1, 2, 3, 4, 5, 6, 8}
Returns: "1014161823253251"
{0, 2, 3, 4, 5, 6, 7, 9}
Returns: ""
{0, 1, 2, 3, 4, 5, 6, 7, 8}
Returns: "101415171823263261"
{2, 3}
Returns: ""
{0, 2, 3, 4, 5, 6, 8, 9}
Returns: ""
{1, 2, 3, 4, 5, 6, 7, 9}
Returns: "1416171923253251"
{0, 1, 2, 3, 4, 5, 6, 9}
Returns: "1014161923253251"
{0, 2, 3, 8, 9}
Returns: ""
{1, 2, 3, 4, 5, 6, 8, 9}
Returns: "1416181923253251"
{0, 1, 2, 3, 4, 5, 6, 7, 9}
Returns: "101415171923263261"
{1, 4, 7}
Returns: ""
{0, 1, 4, 8}
Returns: ""
{2, 4, 7, 8, 9}
Returns: ""
{0, 1, 2, 3, 4, 5, 6, 8, 9}
Returns: "101415181923263261"
{0, 1, 2, 3, 4, 7, 8, 9}
Returns: ""
{0, 1, 2, 3, 5, 7, 8, 9}
Returns: "1017181923253251"
{0, 1, 2, 4, 5, 7, 8, 9}
Returns: ""
{0, 1, 3, 4, 5, 7, 8, 9}
Returns: ""
{0, 2, 3, 4, 5, 7, 8, 9}
Returns: ""
{1, 2, 3, 4, 5, 7, 8, 9}
Returns: "1417181923253251"
{0, 1, 2, 3, 4, 5, 7, 8, 9}
Returns: ""
{0, 1, 2, 3, 4, 5, 8, 9}
Returns: "1014181923253251"
{0, 1, 2, 3, 4, 5, 7, 9}
Returns: "1014171923253251"
{0, 1, 2, 3, 4, 5, 7, 8}
Returns: "1014171823253251"
{0, 1, 2, 6, 7, 8, 9}
Returns: ""
{3, 6, 7}
Returns: ""
{0, 1, 2, 3, 6, 7, 8, 9}
Returns: ""
{4, 6, 8}
Returns: ""
{0, 1, 3, 4, 5, 6, 7, 8}
Returns: ""
{0, 1, 2, 4, 6, 7, 8, 9}
Returns: ""
{3, 4, 6, 7}
Returns: ""
{1, 3, 4, 6, 7, 8, 9}
Returns: ""
{0, 1, 3, 4, 6, 7, 8, 9}
Returns: ""
{0, 2, 3, 4, 6, 7, 8, 9}
Returns: ""
{1, 2, 3, 4, 6, 7, 8, 9}
Returns: ""
{0, 1, 2, 3, 4, 6, 7, 8, 9}
Returns: "101417181923263261"
{0, 1, 2, 3, 4, 6, 8, 9}
Returns: ""
{0, 1, 2, 3, 4, 6, 7, 9}
Returns: ""
{0, 1, 2, 3, 4, 6, 7, 8}
Returns: ""
{0, 1, 2, 4, 5, 6, 7, 8}
Returns: ""
{1, 3, 4, 5, 6, 7, 9}
Returns: ""
{0, 1, 5, 6, 8, 9}
Returns: ""
{0, 1, 2, 5, 6, 7, 8, 9}
Returns: ""
{0, 1, 2, 5, 6, 7, 8}
Returns: ""
{0, 1, 3, 5, 6, 7, 8, 9}
Returns: ""
{0, 1, 2, 4, 5, 6, 7, 9}
Returns: ""
{0, 2, 3, 5, 6, 7, 8, 9}
Returns: ""
{1, 2, 3, 5, 6, 7, 8, 9}
Returns: "1617181923253251"
{0, 1, 2, 3, 5, 6, 7, 8, 9}
Returns: "101517181923263261"
{0, 1, 2, 4, 5, 6, 8, 9}
Returns: ""
{0, 1, 2, 3, 5, 6, 8, 9}
Returns: "1016181923253251"
{0, 1, 3, 4, 5, 6, 7, 9}
Returns: ""
{0, 1, 4, 5, 6, 7, 8, 9}
Returns: ""
{0, 1, 2, 3, 5, 6, 7, 9}
Returns: "1016171923253251"
{0, 2, 4, 5, 6, 7, 8, 9}
Returns: ""
{1, 2, 4, 5, 6, 7, 8, 9}
Returns: ""
{0, 1, 2, 4, 5, 6, 7, 8, 9}
Returns: ""
{0, 1, 2, 3, 5, 6, 7, 8}
Returns: "1016171823253251"
{0, 3, 4, 5, 6, 7, 8, 9}
Returns: ""
{1, 3, 4, 5, 6, 7, 8, 9}
Returns: ""
{0, 1, 3, 4, 5, 6, 7, 8, 9}
Returns: ""
{2, 3, 4, 5, 6, 7, 8, 9}
Returns: ""
{0, 2, 3, 4, 5, 6, 7, 8, 9}
Returns: ""
{1, 2, 3, 4, 5, 6, 7, 8, 9}
Returns: "141517181923263261"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Returns: "10141516181923273271"
{0, 1, 2, 3, 5, 6, 8, 9 }
Returns: "1016181923253251"
{2 }
Returns: "22"
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
Returns: "10141516181923273271"
{0, 1, 2, 3, 5, 6, 7, 9 }
Returns: "1016171923253251"
{0, 2, 3, 4, 5, 6, 7, 8, 9 }
Returns: ""
{1, 2, 3, 6 }
Returns: "12163133"
{1, 2, 3, 4 }
Returns: "12143133"
{0, 1, 2, 3, 4, 5, 7, 8, 9 }
Returns: ""