Problem Statement
Bindu wants to arrange all her bricks into a row. A row of bricks is nice if there is at most one pair of adjacent bricks which have different colors.
Return the number of ways in which Bindu can form a nice row, using all her bricks. (Two ways are considered identical if they correspond to the same sequence of brick colors.)
Definition
- Class:
- ColorfulBricks
- Method:
- countLayouts
- Parameters:
- String
- Returns:
- int
- Method signature:
- int countLayouts(String bricks)
- (be sure your method is public)
Constraints
- bricks will contain between 1 and 50 characters, inclusive.
- Each character of bricks will be an uppercase letter ('A'-'Z').
Examples
"ABAB"
Returns: 2
There are six possible ways to arrange all the bricks into a row: "AABB", "ABAB", "ABBA", "BAAB", "BABA" and "BBAA". Out of these, only "AABB" and "BBAA" have at most one pair of adjacent bricks with different colors.
"AAA"
Returns: 1
In this test case, all bricks have the same color. Hence, there is only one way to arrange them into a row. That row is nice, because it has no adjacent bricks of different colors.
"WXYZ"
Returns: 0
Since all four bricks are of different colors, the bricks at positions 0 and 1 will have different colors. Similarly, the bricks at positions 1 and 2 will also have different colors. Hence, no matter how the bricks are arranged in a row, the row will not be nice.
"Z"
Returns: 1
"LL"
Returns: 1
"UV"
Returns: 2
"BBABC"
Returns: 0
"CCCCCCCCCCC"
Returns: 1
"PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP"
Returns: 1
"HQQHHQQQHQHQQQQQQ"
Returns: 2
"IIIPIIIPIPIPIPIPPPIPIIIIIIPIPIPIPIIIIPP"
Returns: 2
"UUJJJUUJJUJJJUUUJJJUUJJUUJUJJJUUUUUJUUJUUJJUJUUJ"
Returns: 2
"OAOAAOAAOAOAOOAAOOOOOOAOAAAOAAOOAAOOOAOAAOOOAOAOAO"
Returns: 2
"VXXVXXXXVVXVXVXVVXXVVVVVXVXXXVXVXVVVXVVXVXVXXXVVVX"
Returns: 2
"CKKKKKCKKKKKKKKKKKCCCCKCCKCCCCKKKKKKKKKCKKCCCCCCKK"
Returns: 2
"LILIIILIILIIILIILLLLLIIIILIIIILILILLLLIIILLLLLILLL"
Returns: 2
"JEEEJJJEEEJJJJJJJEJEEJEJJEJJEEEJJEEEJJEJJJEEEJEJJJ"
Returns: 2
"OOAOOOAOAAOOAOOOAOOAAOAAOAOAOOAAAOAAAOOOOOOAOOOAOO"
Returns: 2
"XXXXKXXXKKKXXXKKXKKXKKXKKXKKXKXXKXKKXKKKXXKXXKKXXX"
Returns: 2
"VVVAVAVVAVVVVAAAVVVAVVAVAAAAAVAAAAAVAAAAVVAVAAVVAA"
Returns: 2
"DRDDRDRRRRRRRDDDDDDRRDDRRRRRDDDRDRRDDRRDRRDDDRRRDD"
Returns: 2
"VYYVVYVYYYYVVYVYYVYVVVYVYYVVVYVYVYVYYYYYVYYYVVYVYY"
Returns: 2
"TTTTTTGTTGTGGTGGTGTGTTGGGTTGTGTTGGTTGTTGGTGTTTGGTG"
Returns: 2
"IEIEEIIEEEIEIIEEIEIEEEEIIEEIIEIIEEIEIIIEIEEEIEEIEI"
Returns: 2
"QQNNQNQNQNQQNQNQNQQQQQQNQQQQNQNNQQQQQQNQNQQQQNNNNN"
Returns: 2
"HBBHBBBHBHHBHHBHBBHHBBBBHHHHBBBBHHHBHBBBBBBBHHHBBH"
Returns: 2
"VYVYYVYYYVVYYVVYYVVVYYVYVVVYVVVVVYVYYVYYYVVYVYYVVY"
Returns: 2
"SSSLLSSSLLLSLSSLLSSSSLSLLLSLLLLLLLLSLLLSSSLLLLLSSX"
Returns: 0
"GQQQGQGQQQGGQQQGGGQGGGGQQQGQGGQGQGQQGGGQQQQGGGQQGY"
Returns: 0
"ABABABABCCBABACBABCB"
Returns: 0
"ABABCBABACBDBABADBDBABADBADABADBDBADAB"
Returns: 0
"YGTJZUANYLBPZFUFCKTPAJYYSZFNIEHJTIWNLOJYXMNY"
Returns: 0
"DWVZOXIMWCLBQUHZFCHBQVQBUQSWVVD"
Returns: 0
"APOTGCBVKVPRKJLINEVOVLJDONYAINTSWHQJDX"
Returns: 0
"QPCBZJLJBNMJCFDZMVKQTLMJAQMBZXQOHSACIPMJEY"
Returns: 0
"FZIUVSKOGYXIPLKOKTVVRSFGFPXPRE"
Returns: 0
"NCRMJFUREPXYWEEMDTFHCRUEKJPQDIILOLQBUKHYB"
Returns: 0
"YLCMQWRZYLVEVEVNJEWXSHNUBYDBZKYZXCLNYDMYOIEJOAXAEV"
Returns: 0
"CKSGKWHMIHLGKXTKAIJQSNBGPAGTVFSASKGCIPOTZAZJZUVBCG"
Returns: 0
"WUDLVLFQRXSJJYNUQCNPEOAFIVGNCZJYTOLOAQHTPZCBARXQVK"
Returns: 0
"AHGIEMXILHIFXUVXMCQECUFEOCWJODLOMRYSEWBRFLYCHUCUWU"
Returns: 0
"RFEFHAOXFZNTRLMXJPQQCPTKJXEHREIIJONSRCPYDCSWPGVZXM"
Returns: 0
"BKJKHPRZTBJCQZWJDLHGPZFFHAEEMVENGPZPFTQAUAFMZBXCPF"
Returns: 0
"GPJOQPUCLASTQRIXMZZJZEVAITCXAMBGELWUCRYNRQGJKPIYQK"
Returns: 0
"QFPYYTXAHZGLMFHOWGEPYMBKDLJTVQIMVZMVUKVCLEPXJZNHHT"
Returns: 0
"GZSJNBDITNWRPJOJTMNESFDDESKLOKSUKKFZNKHJAECPPSAKEO"
Returns: 0
"VTBZNNMDYGXKRFJGPQRPWTGNMHXSXNRSIUTYIHBGNBQGGZNXRE"
Returns: 0
"AVDOEDIBQZVZWQZEXAKLBCTHBGHUNWMPTQDATLDLNZMJPLPPMB"
Returns: 0
"DVXGCEARCNGXFLXAYBLLCAWTLLIXMKNRGKXKQYBUNJTUURUSUH"
Returns: 0
"HCPTQYSEKFWQRTAJTBFIKZCGSYZMGFKPJBIBBDGMKECEZFNVIV"
Returns: 0
"ABABABBBBABBABBBACCDEDFFFE"
Returns: 0
"AB"
Returns: 2
"AAAAAAAAAAAABBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCDDDDDDD"
Returns: 0
"AAABBBCCCDDDEEEFFF"
Returns: 0
"AAAAAAAAAAAAAAA"
Returns: 1
"AABB"
Returns: 2
"AABBBBB"
Returns: 2
"A"
Returns: 1
"ABCABABCABABCABABCABABCABABCAB"
Returns: 0
"AABBCC"
Returns: 0
"ABABAB"
Returns: 2
"AABBCCDD"
Returns: 0
"ABACADABRAAADAJA"
Returns: 0
"AAABBBCCCDDD"
Returns: 0
"AAAAAAAAAAAAAAAAABBBBBBB"
Returns: 2
"ABDSDWERWE"
Returns: 0
"ABC"
Returns: 0
"AAAABBBBCCCC"
Returns: 0
"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE"
Returns: 0
"WWXXYYZZ"
Returns: 0
"AAABBB"
Returns: 2
"AAAAABBBBBCCCCC"
Returns: 0
"AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBB"
Returns: 2
"AAAAAAA"
Returns: 1
"AAAAAAAAAABBBBBBBBBB"
Returns: 2
"ABCDFABCDFABCDFABCDFABCDFABCDFABCDFABCDFABCDFABCD"
Returns: 0
"AAB"
Returns: 2
"ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWX"
Returns: 0
"AAAABBBBCCCCDDEEEEFFFFFYYY"
Returns: 0
"AABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB"
Returns: 2
"AABBCCDDEEE"
Returns: 0
"AAAAAABB"
Returns: 2
"ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUV"
Returns: 0
"AAAABBBBCCCCDDDD"
Returns: 0
"AAABB"
Returns: 2
"AAAAAAABBBBCCCC"
Returns: 0
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Returns: 0
"ABBBB"
Returns: 2
"ABABAABCCDE"
Returns: 0
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
Returns: 1
"AAAAAA"
Returns: 1
"WWXXYY"
Returns: 0
"ABGADGGGABCDDDDABBGGABCC"
Returns: 0
"AAABABBB"
Returns: 2
"AAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBB"
Returns: 2
"ABCDEFGHIJKLMNOPQRSTUVWXYZINJHUGNHCUBDKOUJHE"
Returns: 0
"XXWWXXYYZZ"
Returns: 0
"AAABBBCCC"
Returns: 0
"AAAABBBCCC"
Returns: 0
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB"
Returns: 2
"AAAAAAABCD"
Returns: 0
"AAAABBBBCCCCCDDDDDEEEEFFFF"
Returns: 0
"AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYZ"
Returns: 0
"AAAABBBBCCCCAAAABBBBCCCCAAAABBBBCCCCAAAABBBBCCCC"
Returns: 0
"QAZWSXEDCRFVTGBYHNUJMIKOLPQAZWSXEDCRFVTGBYHNUJMIKO"
Returns: 0
"AAAAAAAAAABBBBBBBBBBBBCCCCCCCCCDDDDDDDDDAA"
Returns: 0
"ABB"
Returns: 2
"AABBCCCDDDAABBCCCDDDAABBCCCDDDAABBCCCDDDAABBCCCDDD"
Returns: 0
"ABBB"
Returns: 2
"ABABDEF"
Returns: 0
"ABCABCABCAB"
Returns: 0
"ABCAAAA"
Returns: 0
"AAAAAAABBBBBBBBB"
Returns: 2
"ABBA"
Returns: 2
"XYZABA"
Returns: 0
"AZ"
Returns: 2
"ABBBC"
Returns: 0
"ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI"
Returns: 0
"AAAAAAAAAAAAAAAAAAA"
Returns: 1
"AAABBBCCCCDDDEEEEFFFF"
Returns: 0
"AAAABBBB"
Returns: 2
"ABCCCCC"
Returns: 0
"AABCC"
Returns: 0
"AAABBBCC"
Returns: 0
"ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQ"
Returns: 0
"AAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBAAAAAAAA"
Returns: 2
"AAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBB"
Returns: 2
"ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCBCACA"
Returns: 0