Problem Statement
S ::= T | bUa T ::= aTb | A | B U ::= aU | bU | a | b A ::= aA | a B ::= bB | bDisplayed above is a Context-Free Grammar (CFG). You begin with the string (quotes for clarity) "S", and apply replacement rules until your resulting string no longer contains any capital letters. The first line above says that S can be replaced with T or bUa. The other lines are similar. You will return a sequence of strings, beginning with "S" and ending with input, where each successive sequence element results from applying one of the replacement rules above. For example, if input is "aaabb" then you will return
{"S","T","aTb","aaTbb","aaAbb","aaabb"}
Definition
- Class:
- DerivationDisplay
- Method:
- getDerivation
- Parameters:
- String
- Returns:
- String[]
- Method signature:
- String[] getDerivation(String input)
- (be sure your method is public)
Constraints
- input will contain between 1 and 50 characters inclusive.
- Each character in input will be 'a' or 'b'.
- There will be exactly one solution.
Examples
"baabba"
Returns: {"S", "bUa", "baUa", "baaUa", "baabUa", "baabba" }
"aaabb"
Returns: {"S", "T", "aTb", "aaTbb", "aaAbb", "aaabb" }
The example above.
"bbba"
Returns: {"S", "bUa", "bbUa", "bbba" }
In the first step, S must be replaced with bUa in order to derive this string. Then the 2 inner b's are added.
"baabba"
Returns: {"S", "bUa", "baUa", "baaUa", "baabUa", "baabba" }
"a"
Returns: {"S", "T", "A", "a" }
"b"
Returns: {"S", "T", "B", "b" }
"aabbbbbbbb"
Returns: {"S", "T", "aTb", "aaTbb", "aaBbb", "aabBbb", "aabbBbb", "aabbbBbb", "aabbbbBbb", "aabbbbbBbb", "aabbbbbbbb" }
"aaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbb"
Returns: {"S", "T", "aTb", "aaTbb", "aaaTbbb", "aaaaTbbbb", "aaaaaTbbbbb", "aaaaaaTbbbbbb", "aaaaaaaTbbbbbbb", "aaaaaaaaTbbbbbbbb", "aaaaaaaaaTbbbbbbbbb", "aaaaaaaaaaTbbbbbbbbbb", "aaaaaaaaaaaTbbbbbbbbbbb", "aaaaaaaaaaaaTbbbbbbbbbbbb", "aaaaaaaaaaaaaTbbbbbbbbbbbbb", "aaaaaaaaaaaaaaTbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaTbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaaaBbbbbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbb" }
"aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbb"
Returns: {"S", "T", "aTb", "aaTbb", "aaaTbbb", "aaaaTbbbb", "aaaaaTbbbbb", "aaaaaaTbbbbbb", "aaaaaaaTbbbbbbb", "aaaaaaaaTbbbbbbbb", "aaaaaaaaaTbbbbbbbbb", "aaaaaaaaaaTbbbbbbbbbb", "aaaaaaaaaaaTbbbbbbbbbbb", "aaaaaaaaaaaaTbbbbbbbbbbbb", "aaaaaaaaaaaaaTbbbbbbbbbbbbb", "aaaaaaaaaaaaaaTbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaTbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaaaAbbbbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbb" }
"abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
Returns: {"S", "T", "aTb", "aBb", "abBb", "abbBb", "abbbBb", "abbbbBb", "abbbbbBb", "abbbbbbBb", "abbbbbbbBb", "abbbbbbbbBb", "abbbbbbbbbBb", "abbbbbbbbbbBb", "abbbbbbbbbbbBb", "abbbbbbbbbbbbBb", "abbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbBb", "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" }
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab"
Returns: {"S", "T", "aTb", "aAb", "aaAb", "aaaAb", "aaaaAb", "aaaaaAb", "aaaaaaAb", "aaaaaaaAb", "aaaaaaaaAb", "aaaaaaaaaAb", "aaaaaaaaaaAb", "aaaaaaaaaaaAb", "aaaaaaaaaaaaAb", "aaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAb", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab" }
"aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Returns: {"S", "T", "A", "aA", "aaA", "aaaA", "aaaaA", "aaaaaA", "aaaaaaA", "aaaaaaaA", "aaaaaaaaA", "aaaaaaaaaA", "aaaaaaaaaaA", "aaaaaaaaaaaA", "aaaaaaaaaaaaA", "aaaaaaaaaaaaaA", "aaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaa" }
"bbbbbbbbbbbbbbbbbbbbbbbbbbbb"
Returns: {"S", "T", "B", "bB", "bbB", "bbbB", "bbbbB", "bbbbbB", "bbbbbbB", "bbbbbbbB", "bbbbbbbbB", "bbbbbbbbbB", "bbbbbbbbbbB", "bbbbbbbbbbbB", "bbbbbbbbbbbbB", "bbbbbbbbbbbbbB", "bbbbbbbbbbbbbbB", "bbbbbbbbbbbbbbbB", "bbbbbbbbbbbbbbbbB", "bbbbbbbbbbbbbbbbbB", "bbbbbbbbbbbbbbbbbbB", "bbbbbbbbbbbbbbbbbbbB", "bbbbbbbbbbbbbbbbbbbbB", "bbbbbbbbbbbbbbbbbbbbbB", "bbbbbbbbbbbbbbbbbbbbbbB", "bbbbbbbbbbbbbbbbbbbbbbbB", "bbbbbbbbbbbbbbbbbbbbbbbbB", "bbbbbbbbbbbbbbbbbbbbbbbbbB", "bbbbbbbbbbbbbbbbbbbbbbbbbbB", "bbbbbbbbbbbbbbbbbbbbbbbbbbbB", "bbbbbbbbbbbbbbbbbbbbbbbbbbbb" }
"babababababababaabababababa"
Returns: {"S", "bUa", "baUa", "babUa", "babaUa", "bababUa", "bababaUa", "babababUa", "babababaUa", "bababababUa", "bababababaUa", "babababababUa", "babababababaUa", "bababababababUa", "bababababababaUa", "babababababababUa", "babababababababaUa", "babababababababaaUa", "babababababababaabUa", "babababababababaabaUa", "babababababababaababUa", "babababababababaababaUa", "babababababababaabababUa", "babababababababaabababaUa", "babababababababaababababUa", "babababababababaababababaUa", "babababababababaabababababa" }
"baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Returns: {"S", "bUa", "baUa", "baaUa", "baaaUa", "baaaaUa", "baaaaaUa", "baaaaaaUa", "baaaaaaaUa", "baaaaaaaaUa", "baaaaaaaaaUa", "baaaaaaaaaaUa", "baaaaaaaaaaaUa", "baaaaaaaaaaaaUa", "baaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUa", "baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }
"baaaaaaaaaabbbbbbbbbbbbbbbbbbba"
Returns: {"S", "bUa", "baUa", "baaUa", "baaaUa", "baaaaUa", "baaaaaUa", "baaaaaaUa", "baaaaaaaUa", "baaaaaaaaUa", "baaaaaaaaaUa", "baaaaaaaaaaUa", "baaaaaaaaaabUa", "baaaaaaaaaabbUa", "baaaaaaaaaabbbUa", "baaaaaaaaaabbbbUa", "baaaaaaaaaabbbbbUa", "baaaaaaaaaabbbbbbUa", "baaaaaaaaaabbbbbbbUa", "baaaaaaaaaabbbbbbbbUa", "baaaaaaaaaabbbbbbbbbUa", "baaaaaaaaaabbbbbbbbbbUa", "baaaaaaaaaabbbbbbbbbbbUa", "baaaaaaaaaabbbbbbbbbbbbUa", "baaaaaaaaaabbbbbbbbbbbbbUa", "baaaaaaaaaabbbbbbbbbbbbbbUa", "baaaaaaaaaabbbbbbbbbbbbbbbUa", "baaaaaaaaaabbbbbbbbbbbbbbbbUa", "baaaaaaaaaabbbbbbbbbbbbbbbbbUa", "baaaaaaaaaabbbbbbbbbbbbbbbbbbUa", "baaaaaaaaaabbbbbbbbbbbbbbbbbbba" }
"bababababababbabbaaababaabaaaababababababa"
Returns: {"S", "bUa", "baUa", "babUa", "babaUa", "bababUa", "bababaUa", "babababUa", "babababaUa", "bababababUa", "bababababaUa", "babababababUa", "babababababaUa", "bababababababUa", "bababababababbUa", "bababababababbaUa", "bababababababbabUa", "bababababababbabbUa", "bababababababbabbaUa", "bababababababbabbaaUa", "bababababababbabbaaaUa", "bababababababbabbaaabUa", "bababababababbabbaaabaUa", "bababababababbabbaaababUa", "bababababababbabbaaababaUa", "bababababababbabbaaababaaUa", "bababababababbabbaaababaabUa", "bababababababbabbaaababaabaUa", "bababababababbabbaaababaabaaUa", "bababababababbabbaaababaabaaaUa", "bababababababbabbaaababaabaaaaUa", "bababababababbabbaaababaabaaaabUa", "bababababababbabbaaababaabaaaabaUa", "bababababababbabbaaababaabaaaababUa", "bababababababbabbaaababaabaaaababaUa", "bababababababbabbaaababaabaaaabababUa", "bababababababbabbaaababaabaaaabababaUa", "bababababababbabbaaababaabaaaababababUa", "bababababababbabbaaababaabaaaababababaUa", "bababababababbabbaaababaabaaaabababababUa", "bababababababbabbaaababaabaaaabababababaUa", "bababababababbabbaaababaabaaaababababababa" }
"aaaaaaaaaaabbbbbbbbbbbbbbbbbbb"
Returns: {"S", "T", "aTb", "aaTbb", "aaaTbbb", "aaaaTbbbb", "aaaaaTbbbbb", "aaaaaaTbbbbbb", "aaaaaaaTbbbbbbb", "aaaaaaaaTbbbbbbbb", "aaaaaaaaaTbbbbbbbbb", "aaaaaaaaaaTbbbbbbbbbb", "aaaaaaaaaaaTbbbbbbbbbbb", "aaaaaaaaaaaBbbbbbbbbbbb", "aaaaaaaaaaabBbbbbbbbbbbb", "aaaaaaaaaaabbBbbbbbbbbbbb", "aaaaaaaaaaabbbBbbbbbbbbbbb", "aaaaaaaaaaabbbbBbbbbbbbbbbb", "aaaaaaaaaaabbbbbBbbbbbbbbbbb", "aaaaaaaaaaabbbbbbBbbbbbbbbbbb", "aaaaaaaaaaabbbbbbbBbbbbbbbbbbb", "aaaaaaaaaaabbbbbbbbbbbbbbbbbbb" }
"baa"
Returns: {"S", "bUa", "baa" }
"bba"
Returns: {"S", "bUa", "bba" }
"aab"
Returns: {"S", "T", "aTb", "aAb", "aab" }
"abb"
Returns: {"S", "T", "aTb", "aBb", "abb" }
"aabbbbbbbb"
Returns: {"S", "T", "aTb", "aaTbb", "aaBbb", "aabBbb", "aabbBbb", "aabbbBbb", "aabbbbBbb", "aabbbbbBbb", "aabbbbbbbb" }
"aaaa"
Returns: {"S", "T", "A", "aA", "aaA", "aaaA", "aaaa" }
"baabba"
Returns: {"S", "bUa", "baUa", "baaUa", "baabUa", "baabba" }
"aab"
Returns: {"S", "T", "aTb", "aAb", "aab" }
"b"
Returns: {"S", "T", "B", "b" }
"bb"
Returns: {"S", "T", "B", "bB", "bb" }
"aaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbb"
Returns: {"S", "T", "aTb", "aaTbb", "aaaTbbb", "aaaaTbbbb", "aaaaaTbbbbb", "aaaaaaTbbbbbb", "aaaaaaaTbbbbbbb", "aaaaaaaaTbbbbbbbb", "aaaaaaaaaTbbbbbbbbb", "aaaaaaaaaBbbbbbbbbb", "aaaaaaaaabBbbbbbbbbb", "aaaaaaaaabbBbbbbbbbbb", "aaaaaaaaabbbBbbbbbbbbb", "aaaaaaaaabbbbBbbbbbbbbb", "aaaaaaaaabbbbbBbbbbbbbbb", "aaaaaaaaabbbbbbBbbbbbbbbb", "aaaaaaaaabbbbbbbBbbbbbbbbb", "aaaaaaaaabbbbbbbbBbbbbbbbbb", "aaaaaaaaabbbbbbbbbBbbbbbbbbb", "aaaaaaaaabbbbbbbbbbBbbbbbbbbb", "aaaaaaaaabbbbbbbbbbbBbbbbbbbbb", "aaaaaaaaabbbbbbbbbbbbBbbbbbbbbb", "aaaaaaaaabbbbbbbbbbbbbBbbbbbbbbb", "aaaaaaaaabbbbbbbbbbbbbbBbbbbbbbbb", "aaaaaaaaabbbbbbbbbbbbbbbBbbbbbbbbb", "aaaaaaaaabbbbbbbbbbbbbbbbBbbbbbbbbb", "aaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbb" }
"baa"
Returns: {"S", "bUa", "baa" }
"babbbbbbbbaaaaabbbbbbaaababbbbbbbbbaaaaabbbbbababa"
Returns: {"S", "bUa", "baUa", "babUa", "babbUa", "babbbUa", "babbbbUa", "babbbbbUa", "babbbbbbUa", "babbbbbbbUa", "babbbbbbbbUa", "babbbbbbbbaUa", "babbbbbbbbaaUa", "babbbbbbbbaaaUa", "babbbbbbbbaaaaUa", "babbbbbbbbaaaaaUa", "babbbbbbbbaaaaabUa", "babbbbbbbbaaaaabbUa", "babbbbbbbbaaaaabbbUa", "babbbbbbbbaaaaabbbbUa", "babbbbbbbbaaaaabbbbbUa", "babbbbbbbbaaaaabbbbbbUa", "babbbbbbbbaaaaabbbbbbaUa", "babbbbbbbbaaaaabbbbbbaaUa", "babbbbbbbbaaaaabbbbbbaaaUa", "babbbbbbbbaaaaabbbbbbaaabUa", "babbbbbbbbaaaaabbbbbbaaabaUa", "babbbbbbbbaaaaabbbbbbaaababUa", "babbbbbbbbaaaaabbbbbbaaababbUa", "babbbbbbbbaaaaabbbbbbaaababbbUa", "babbbbbbbbaaaaabbbbbbaaababbbbUa", "babbbbbbbbaaaaabbbbbbaaababbbbbUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbbUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbbbUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbbbbUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbbbbaUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbbbbaaUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbbbbaaaUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbbbbaaaaUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbbbbaaaaaUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbbbbaaaaabUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbbbbaaaaabbUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbbbbaaaaabbbUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbbbbaaaaabbbbUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbbbbaaaaabbbbbUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbbbbaaaaabbbbbaUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbbbbaaaaabbbbbabUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbbbbaaaaabbbbbabaUa", "babbbbbbbbaaaaabbbbbbaaababbbbbbbbbaaaaabbbbbababa" }
"aaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbb"
Returns: {"S", "T", "aTb", "aaTbb", "aaaTbbb", "aaaaTbbbb", "aaaaaTbbbbb", "aaaaaaTbbbbbb", "aaaaaaaTbbbbbbb", "aaaaaaaaTbbbbbbbb", "aaaaaaaaaTbbbbbbbbb", "aaaaaaaaaaTbbbbbbbbbb", "aaaaaaaaaaaTbbbbbbbbbbb", "aaaaaaaaaaaaTbbbbbbbbbbbb", "aaaaaaaaaaaaaTbbbbbbbbbbbbb", "aaaaaaaaaaaaaaTbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaTbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaaaaaaaTbbbbbbbbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaaaaaaaAbbbbbbbbbbbbbbbbbbbbbbbb", "aaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbb" }
"babababababababababababababababababababababababaa"
Returns: {"S", "bUa", "baUa", "babUa", "babaUa", "bababUa", "bababaUa", "babababUa", "babababaUa", "bababababUa", "bababababaUa", "babababababUa", "babababababaUa", "bababababababUa", "bababababababaUa", "babababababababUa", "babababababababaUa", "bababababababababUa", "bababababababababaUa", "babababababababababUa", "babababababababababaUa", "bababababababababababUa", "bababababababababababaUa", "babababababababababababUa", "babababababababababababaUa", "bababababababababababababUa", "bababababababababababababaUa", "babababababababababababababUa", "babababababababababababababaUa", "bababababababababababababababUa", "bababababababababababababababaUa", "babababababababababababababababUa", "babababababababababababababababaUa", "bababababababababababababababababUa", "bababababababababababababababababaUa", "babababababababababababababababababUa", "babababababababababababababababababaUa", "bababababababababababababababababababUa", "bababababababababababababababababababaUa", "babababababababababababababababababababUa", "babababababababababababababababababababaUa", "bababababababababababababababababababababUa", "bababababababababababababababababababababaUa", "babababababababababababababababababababababUa", "babababababababababababababababababababababaUa", "bababababababababababababababababababababababUa", "bababababababababababababababababababababababaUa", "babababababababababababababababababababababababUa", "babababababababababababababababababababababababaa" }
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Returns: {"S", "T", "A", "aA", "aaA", "aaaA", "aaaaA", "aaaaaA", "aaaaaaA", "aaaaaaaA", "aaaaaaaaA", "aaaaaaaaaA", "aaaaaaaaaaA", "aaaaaaaaaaaA", "aaaaaaaaaaaaA", "aaaaaaaaaaaaaA", "aaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaA", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" }
"bbbbbbbbbb"
Returns: {"S", "T", "B", "bB", "bbB", "bbbB", "bbbbB", "bbbbbB", "bbbbbbB", "bbbbbbbB", "bbbbbbbbB", "bbbbbbbbbB", "bbbbbbbbbb" }
"bbbaaba"
Returns: {"S", "bUa", "bbUa", "bbbUa", "bbbaUa", "bbbaaUa", "bbbaaba" }