Problem Statement
A substring of a string is any non-empty contiguous subsequence of its characters. For example, both "abc" and "bcd" are substrings of "abcde", but "ace" is not a substring of "abcde".
A string is called constant if all of its characters are the same. For example, "a" and "bbbbb" are constant strings, but "aba" is not a constant string.
Two substrings of the same string are considered distinct if they start or end at a different position. For example, the string "ababab" contains three distinct copies of the substring "ab", and the string "aaaa" contains two distinct copies of the substring "aaa".
Bear Limak is creating a new account and he needs to choose a password. His password should satisfy the following security requirements:
- The password must be a string of length N.
- Each character of the password must be either 'a' or 'b'.
- For each i between 1 and N, inclusive, the password must contain exactly x[i-1] constant substrings of length i.
You are given the
Definition
- Class:
- BearPasswordAny
- Method:
- findPassword
- Parameters:
- int[]
- Returns:
- String
- Method signature:
- String findPassword(int[] x)
- (be sure your method is public)
Constraints
- N will be between 1 and 50, inclusive.
- x will contain exactly N elements.
- Each element in x will be between 0 and N, inclusive.
Examples
{5,0,0,0,0}
Returns: "ababa"
Since the given int[] x has five elements, the password must contain exactly five characters. A password must contain x[0] = 5 constant substrings of length 1, and 0 constant substrings of bigger lengths. The only two valid passwords are "ababa" and "babab". You may return any of them.
{4,2,1,0}
Returns: "baaa"
{3,1,1}
Returns: ""
{4,3,2,1}
Returns: "aaaa"
{0}
Returns: ""
{4,0,3,2}
Returns: ""
{6,3,1,0,0,0}
Returns: "abbaaa"
{10,5,2,1,0,0,0,0,0,0}
Returns: "bbbbaababb"
{5,4,2,1,0}
Returns: ""
{1}
Returns: "a"
{0,0}
Returns: ""
{0,1}
Returns: ""
{1,0}
Returns: ""
{1,2}
Returns: ""
{2,0}
Returns: "ab"
{2,2}
Returns: ""
{10,6,3,1,0,0,0,0,0,0}
Returns: "abbaaabbbb"
{31,27,24,21,19,17,15,13,12,11,10,9,8,7,6,5,4,3,2,1,0,0,0,0,0,0,0,0,0,0,0}
Returns: "abbbaaaaaaabbbbbbbbbbbbbbbbbbbb"
{50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1}
Returns: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
{50,48,46,44,42,40,38,36,34,32,30,28,26,24,22,20,18,16,14,12,10,8,6,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
Returns: "aaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbb"
{50,47,44,41,38,35,32,29,26,23,20,18,16,14,12,10,8,6,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
Returns: "aaaaaaaaaabbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaa"
{36,29,25,21,17,13,9,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
Returns: "ababbbbbbbaaaaaaaabbbbbbbbbaaaaaaaaa"
{43,36,33,31,29,27,25,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0}
Returns: "ababaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
{45,36,28,21,15,10,6,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
Returns: "abbaaabbbbaaaaabbbbbbaaaaaaabbbbbbbbaaaaaaaaa"
{47,36,28,21,15,10,6,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
Returns: "ababbaaabbbbaaaaabbbbbbaaaaaaabbbbbbbbaaaaaaaaa"
{50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1}
Returns: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
{50,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0}
Returns: "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
{50,47,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,0,0}
Returns: "abbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
{50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
Returns: "ababababababababababababababababababababababababab"
{50,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
Returns: "ababababababababababababababababababababababababbb"
{50,47,44,41,38,35,32,29,26,23,20,18,16,14,12,9,8,6,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
Returns: ""
{36,29,25,21,17,13,9,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
Returns: "ababbbbbbbaaaaaaaabbbbbbbbbaaaaaaaaa"
{43,36,33,31,29,27,25,23,22,20,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0}
Returns: ""
{45,36,28,21,15,9,6,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
Returns: "abbaaabbbbbaaaaabbbbbaaaaaaabbbbbbbbaaaaaaaaa"
{47,36,27,21,15,10,6,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
Returns: "abaabbaabbbbaaaaabbbbbbaaaaaaabbbbbbbbaaaaaaaaa"
{50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,13,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1}
Returns: ""
{50,48,47,46,45,44,43,42,41,40,39,35,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0}
Returns: ""
{50,47,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,6,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,0,0}
Returns: ""
{49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
Returns: ""
{50,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
Returns: ""
{24,33,32,36,10,34,46,21,48,14,9,16,11,7,20,6,32,14,45,27,1,17,25,41,32,34,48,2,10,2,7,9,9,40,45,20,48,14,15,19,3,49,35,39,30,5,19,11,44,14}
Returns: ""
{50,33,32,36,10,34,46,21,48,14,9,16,11,7,20,6,32,14,45,27,1,17,25,41,32,34,48,2,10,2,7,9,9,40,45,20,48,14,15,19,3,49,35,39,30,5,19,11,44,14}
Returns: ""
{5, 0, 0, 0, 0 }
Returns: "ababa"
{4, 3, 2, 1 }
Returns: "aaaa"
{1, 0, 0, 0, 0 }
Returns: ""
{43, 24, 12, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
Returns: "ababababbaabbaabbaabbaabbbbbaaaaabbbbbaaaaa"
{1, 0 }
Returns: ""
{50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
Returns: ""
{4, 0, 0, 0, 0 }
Returns: ""
{1, 0, 0, 0 }
Returns: ""
{1, 0, 0 }
Returns: ""
{3, 0, 0, 0 }
Returns: ""
{50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
Returns: "ababababababababababababababababababababababababab"
{10, 5, 2, 1, 0, 0, 0, 0, 0, 0 }
Returns: "bbbbaababb"
{5, 0, 0, 0, 0, 0 }
Returns: ""
{2, 0, 0, 0, 0 }
Returns: ""
{4, 2, 1, 0 }
Returns: "baaa"
{4, 2, 0, 0 }
Returns: "aabb"