Problem Statement
An ideal string is a string where the 1-based index of the first occurrence of each letter is equal to the number of occurrences of that letter in the string. For example, the "BAOOOA" is an ideal string (quotes for clarity only). The letter 'B' appears 1 time, and its index is 1. The letter 'A' occurs 2 times and its first index is 2. The letter 'O' occurs 3 times and its first index is 3.
Given an
Definition
- Class:
- IdealString
- Method:
- construct
- Parameters:
- int
- Returns:
- String
- Method signature:
- String construct(int length)
- (be sure your method is public)
Notes
- String A is lexicographically smaller than string B of the same length if it contains a smaller letter at the first position they differ. Letter X is smaller than letter Y if it comes earlier in the alphabet.
Constraints
- length will be between 1 and 100, inclusive.
Examples
1
Returns: "A"
3
Returns: "ABB"
2
Returns: ""
There's no way we can construct an ideal string of length 2 - if both its characters are equal, then the number of occurrences (2) and the position of its first occurrence (1) do not match; if they are distinct, then for the second character the number of occurrences (1) and the position of its first occurrence (2) do not match as well.
4
Returns: ""
6
Returns: "ABCBCC"
We can permute the last 3 characters in any way, but this way gets us the lexicographically smallest answer.
7
Returns: "ABBCCCC"
5
Returns: ""
8
Returns: ""
9
Returns: ""
10
Returns: "ABCDBCCDDD"
11
Returns: "ABCBDCCDDDD"
12
Returns: "ABBCDCCCDDDD"
13
Returns: "ABBCCDCCDDDDD"
14
Returns: "ABBCCCDCDDDDDD"
15
Returns: "ABBCCCCDDDDDDDD"
16
Returns: "ABCDBECCDDDEEEEE"
17
Returns: "ABCBDECCDDDDEEEEE"
18
Returns: "ABBCDECCCDDDDEEEEE"
19
Returns: "ABBCDCECCDDDDEEEEEE"
20
Returns: "ABBCCDECCDDDDDEEEEEE"
21
Returns: "ABBCCDCECDDDDDEEEEEEE"
22
Returns: "ABBCCCDECDDDDDDEEEEEEE"
23
Returns: "ABBCCCDCEDDDDDDEEEEEEEE"
24
Returns: "ABBCCCCDEDDDDDDDEEEEEEEE"
25
Returns: "ABBCCCCDDEDDDDDDEEEEEEEEE"
26
Returns: "ABBCCCCDDDEDDDDDEEEEEEEEEE"
27
Returns: "ABBCCCCDDDDEDDDDEEEEEEEEEEE"
28
Returns: "ABBCCCCDDDDDEDDDEEEEEEEEEEEE"
29
Returns: "ABBCCCCDDDDDDEDDEEEEEEEEEEEEE"
30
Returns: "ABBCCCCDDDDDDDEDEEEEEEEEEEEEEE"
31
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEEEEE"
32
Returns: "ABBCCCDECFDDDDDDEEEEEEEFFFFFFFFF"
33
Returns: "ABBCCCDCEFDDDDDDEEEEEEEEFFFFFFFFF"
34
Returns: "ABBCCCCDEFDDDDDDDEEEEEEEEFFFFFFFFF"
35
Returns: "ABBCCCCDEDFDDDDDDEEEEEEEEFFFFFFFFFF"
36
Returns: "ABBCCCCDDEFDDDDDDEEEEEEEEEFFFFFFFFFF"
37
Returns: "ABBCCCCDDEDFDDDDDEEEEEEEEEFFFFFFFFFFF"
38
Returns: "ABBCCCCDDDEFDDDDDEEEEEEEEEEFFFFFFFFFFF"
39
Returns: "ABBCCCCDDDEDFDDDDEEEEEEEEEEFFFFFFFFFFFF"
40
Returns: "ABBCCCCDDDDEFDDDDEEEEEEEEEEEFFFFFFFFFFFF"
41
Returns: "ABBCCCCDDDDEDFDDDEEEEEEEEEEEFFFFFFFFFFFFF"
42
Returns: "ABBCCCCDDDDDEFDDDEEEEEEEEEEEEFFFFFFFFFFFFF"
43
Returns: "ABBCCCCDDDDDEDFDDEEEEEEEEEEEEFFFFFFFFFFFFFF"
44
Returns: "ABBCCCCDDDDDDEFDDEEEEEEEEEEEEEFFFFFFFFFFFFFF"
45
Returns: "ABBCCCCDDDDDDEDFDEEEEEEEEEEEEEFFFFFFFFFFFFFFF"
46
Returns: "ABBCCCCDDDDDDDEFDEEEEEEEEEEEEEEFFFFFFFFFFFFFFF"
47
Returns: "ABBCCCCDDDDDDDEDFEEEEEEEEEEEEEEFFFFFFFFFFFFFFFF"
48
Returns: "ABBCCCCDDDDDDDDEFEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFF"
49
Returns: "ABBCCCCDDDDDDDDEEFEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFF"
50
Returns: "ABBCCCCDDDDDDDDEEEFEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFF"
51
Returns: "ABBCCCCDDDDDDDDEEEEFEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFF"
52
Returns: "ABBCCCCDDDDDDDDEEEEEFEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFF"
53
Returns: "ABBCCCCDDDDDDDDEEEEEEFEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFF"
54
Returns: "ABBCCCCDDDDDDDDEEEEEEEFEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFF"
55
Returns: "ABBCCCCDDDDDDDDEEEEEEEEFEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFF"
56
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEFEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFF"
57
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEFEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFF"
58
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEFEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFF"
59
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEFEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFF"
60
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEEFEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
61
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEEEFEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
62
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEEEEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
63
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
64
Returns: "ABBCCCCDDDDDDDEFDGEEEEEEEEEEEEEEFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGG"
65
Returns: "ABBCCCCDDDDDDDEDFGEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGG"
66
Returns: "ABBCCCCDDDDDDDDEFGEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGG"
67
Returns: "ABBCCCCDDDDDDDDEFEGEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGG"
68
Returns: "ABBCCCCDDDDDDDDEEFGEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGG"
69
Returns: "ABBCCCCDDDDDDDDEEFEGEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGG"
70
Returns: "ABBCCCCDDDDDDDDEEEFGEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGG"
71
Returns: "ABBCCCCDDDDDDDDEEEFEGEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGG"
72
Returns: "ABBCCCCDDDDDDDDEEEEFGEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGG"
73
Returns: "ABBCCCCDDDDDDDDEEEEFEGEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGG"
74
Returns: "ABBCCCCDDDDDDDDEEEEEFGEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGG"
75
Returns: "ABBCCCCDDDDDDDDEEEEEFEGEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGG"
76
Returns: "ABBCCCCDDDDDDDDEEEEEEFGEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGG"
77
Returns: "ABBCCCCDDDDDDDDEEEEEEFEGEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGG"
78
Returns: "ABBCCCCDDDDDDDDEEEEEEEFGEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGG"
79
Returns: "ABBCCCCDDDDDDDDEEEEEEEFEGEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGG"
80
Returns: "ABBCCCCDDDDDDDDEEEEEEEEFGEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGG"
81
Returns: "ABBCCCCDDDDDDDDEEEEEEEEFEGEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGG"
82
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEFGEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGG"
83
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEFEGEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGG"
84
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEFGEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGG"
85
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEFEGEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGG"
86
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEFGEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGG"
87
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEFEGEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
88
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEFGEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
89
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEFEGEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
90
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEEFGEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
91
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEEFEGEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
92
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEEEFGEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
93
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEEEFEGEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
94
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEEEEFGEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
95
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEEEEFEGFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
96
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEEEEEFGFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
97
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEEEEEFFGFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
98
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEEEEEFFFGFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
99
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEEEEEFFFFGFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
100
Returns: "ABBCCCCDDDDDDDDEEEEEEEEEEEEEEEEFFFFFGFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"