Problem Statement
- 1) The string xy (x with y concatenated on the end) must equal str.
- 2) The number of a's in x must equal the number of b's in y.
- 3) If multiple solutions are possible, use the one that maximizes the length of x.
Definition
- Class:
- EqualSubstrings
- Method:
- getSubstrings
- Parameters:
- String
- Returns:
- String[]
- Method signature:
- String[] getSubstrings(String str)
- (be sure your method is public)
Constraints
- str will contain between 1 and 50 characters inclusive.
- Each character in str will be a lowercase letter ('a'-'z').
Examples
"aaabbb"
Returns: { "aaa", "bbb" }
Here we can split str right down the center.
"bbbaaa"
Returns: { "bbb", "aaa" }
Again the center works.
"bbbbbb"
Returns: { "bbbbbb", "" }
y can be empty.
"aaaaaa"
Returns: { "", "aaaaaa" }
x can be empty.
"abjlkbjalkbjaljsbljbalb"
Returns: { "abjlkbjalkbjaljs", "bljbalb" }
Make sure to maximize the length of x.
"cccccccc"
Returns: { "cccccccc", "" }
"abjabjabjabjabjabjabjabjabjabjabjabjabjabjabjabjab"
Returns: { "abjabjabjabjabjabjabjabja", "bjabjabjabjabjabjabjabjab" }
"zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
Returns: { "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz", "" }
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Returns: { "", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }
"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
Returns: { "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "" }
"ababababababababababababababababababababababababab"
Returns: { "ababababababababababababa", "babababababababababababab" }
"jnoidabjasodjbaoibjaobjaiobjoaijbnoijbbn"
Returns: { "jnoidabjasodjbaoibjaobj", "aiobjoaijbnoijbbn" }
"abjkabjakjbakbjalkbjlaejjebajb"
Returns: { "abjkabjakjbak", "bjalkbjlaejjebajb" }
"jwoabijobijaoibjaobijeoaibjoia"
Returns: { "jwoabijobijaoibj", "aobijeoaibjoia" }
"aiowbejowbbjowijboibjweoibjawojb"
Returns: { "aiowbejowbbjowijboibjweoibj", "awojb" }
"awebwakbkababkabk"
Returns: { "awebwakbka", "babkabk" }
"greatproblemset"
Returns: { "greatpro", "blemset" }
"reallyterrific"
Returns: { "re", "allyterrific" }
"axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Returns: { "", "axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }
"axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxb"
Returns: { "axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "b" }
"a"
Returns: { "", "a" }
"bbb"
Returns: { "bbb", "" }
"xxxx"
Returns: { "xxxx", "" }
"bab"
Returns: { "ba", "b" }
"fazmlkfmlkfmqzlekjfmlsqdkjfmlsqekjfmzalefkjmldkjb"
Returns: { "fazmlkfmlkfmqzlekjfmlsqdkjfmlsqekjfmz", "alefkjmldkjb" }
"aaaaaaaa"
Returns: { "", "aaaaaaaa" }
"sdfsdfsdf"
Returns: { "sdfsdfsdf", "" }
"aasdfbabb"
Returns: { "aasdfb", "abb" }
"cccccccc"
Returns: { "cccccccc", "" }
"abjlkbjalkbjaljsbljbalb"
Returns: { "abjlkbjalkbjaljs", "bljbalb" }
"ddddddddddddddddddddddddda"
Returns: { "ddddddddddddddddddddddddd", "a" }
"z"
Returns: { "z", "" }
"aaaa"
Returns: { "", "aaaa" }
"fezfzeafcxpvoiuwxcvaazareeaaaaaaaaaaaaaaaaa"
Returns: { "fezfze", "afcxpvoiuwxcvaazareeaaaaaaaaaaaaaaaaa" }
"zzzzzzssssssssss"
Returns: { "zzzzzzssssssssss", "" }
"bb"
Returns: { "bb", "" }
"a"
Returns: { "", "a" }
"bbb"
Returns: { "bbb", "" }
"xxxx"
Returns: { "xxxx", "" }
"bab"
Returns: { "ba", "b" }
"fazmlkfmlkfmqzlekjfmlsqdkjfmlsqekjfmzalefkjmldkjb"
Returns: { "fazmlkfmlkfmqzlekjfmlsqdkjfmlsqekjfmz", "alefkjmldkjb" }
"aaaaaaaa"
Returns: { "", "aaaaaaaa" }
"sdfsdfsdf"
Returns: { "sdfsdfsdf", "" }
"aasdfbabb"
Returns: { "aasdfb", "abb" }
"cccccccc"
Returns: { "cccccccc", "" }
"abjlkbjalkbjaljsbljbalb"
Returns: { "abjlkbjalkbjaljs", "bljbalb" }
"ddddddddddddddddddddddddda"
Returns: { "ddddddddddddddddddddddddd", "a" }
"z"
Returns: { "z", "" }
"aaaa"
Returns: { "", "aaaa" }
"fezfzeafcxpvoiuwxcvaazareeaaaaaaaaaaaaaaaaa"
Returns: { "fezfze", "afcxpvoiuwxcvaazareeaaaaaaaaaaaaaaaaa" }
"zzzzzzssssssssss"
Returns: { "zzzzzzssssssssss", "" }
"bb"
Returns: { "bb", "" }