Statistics

Problem Statement for "ColorfulBricks"

Problem Statement

Beaver Bindu has some colored bricks. Each color is described by an uppercase letter. Bricks of each color all look exactly the same. You are given a String bricks. Each character of bricks represents the color of one of Bindu's bricks.

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

  1. "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.

  2. "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.

  3. "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.

  4. "Z"

    Returns: 1

  5. "LL"

    Returns: 1

  6. "UV"

    Returns: 2

  7. "BBABC"

    Returns: 0

  8. "CCCCCCCCCCC"

    Returns: 1

  9. "PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP"

    Returns: 1

  10. "HQQHHQQQHQHQQQQQQ"

    Returns: 2

  11. "IIIPIIIPIPIPIPIPPPIPIIIIIIPIPIPIPIIIIPP"

    Returns: 2

  12. "UUJJJUUJJUJJJUUUJJJUUJJUUJUJJJUUUUUJUUJUUJJUJUUJ"

    Returns: 2

  13. "OAOAAOAAOAOAOOAAOOOOOOAOAAAOAAOOAAOOOAOAAOOOAOAOAO"

    Returns: 2

  14. "VXXVXXXXVVXVXVXVVXXVVVVVXVXXXVXVXVVVXVVXVXVXXXVVVX"

    Returns: 2

  15. "CKKKKKCKKKKKKKKKKKCCCCKCCKCCCCKKKKKKKKKCKKCCCCCCKK"

    Returns: 2

  16. "LILIIILIILIIILIILLLLLIIIILIIIILILILLLLIIILLLLLILLL"

    Returns: 2

  17. "JEEEJJJEEEJJJJJJJEJEEJEJJEJJEEEJJEEEJJEJJJEEEJEJJJ"

    Returns: 2

  18. "OOAOOOAOAAOOAOOOAOOAAOAAOAOAOOAAAOAAAOOOOOOAOOOAOO"

    Returns: 2

  19. "XXXXKXXXKKKXXXKKXKKXKKXKKXKKXKXXKXKKXKKKXXKXXKKXXX"

    Returns: 2

  20. "VVVAVAVVAVVVVAAAVVVAVVAVAAAAAVAAAAAVAAAAVVAVAAVVAA"

    Returns: 2

  21. "DRDDRDRRRRRRRDDDDDDRRDDRRRRRDDDRDRRDDRRDRRDDDRRRDD"

    Returns: 2

  22. "VYYVVYVYYYYVVYVYYVYVVVYVYYVVVYVYVYVYYYYYVYYYVVYVYY"

    Returns: 2

  23. "TTTTTTGTTGTGGTGGTGTGTTGGGTTGTGTTGGTTGTTGGTGTTTGGTG"

    Returns: 2

  24. "IEIEEIIEEEIEIIEEIEIEEEEIIEEIIEIIEEIEIIIEIEEEIEEIEI"

    Returns: 2

  25. "QQNNQNQNQNQQNQNQNQQQQQQNQQQQNQNNQQQQQQNQNQQQQNNNNN"

    Returns: 2

  26. "HBBHBBBHBHHBHHBHBBHHBBBBHHHHBBBBHHHBHBBBBBBBHHHBBH"

    Returns: 2

  27. "VYVYYVYYYVVYYVVYYVVVYYVYVVVYVVVVVYVYYVYYYVVYVYYVVY"

    Returns: 2

  28. "SSSLLSSSLLLSLSSLLSSSSLSLLLSLLLLLLLLSLLLSSSLLLLLSSX"

    Returns: 0

  29. "GQQQGQGQQQGGQQQGGGQGGGGQQQGQGGQGQGQQGGGQQQQGGGQQGY"

    Returns: 0

  30. "ABABABABCCBABACBABCB"

    Returns: 0

  31. "ABABCBABACBDBABADBDBABADBADABADBDBADAB"

    Returns: 0

  32. "YGTJZUANYLBPZFUFCKTPAJYYSZFNIEHJTIWNLOJYXMNY"

    Returns: 0

  33. "DWVZOXIMWCLBQUHZFCHBQVQBUQSWVVD"

    Returns: 0

  34. "APOTGCBVKVPRKJLINEVOVLJDONYAINTSWHQJDX"

    Returns: 0

  35. "QPCBZJLJBNMJCFDZMVKQTLMJAQMBZXQOHSACIPMJEY"

    Returns: 0

  36. "FZIUVSKOGYXIPLKOKTVVRSFGFPXPRE"

    Returns: 0

  37. "NCRMJFUREPXYWEEMDTFHCRUEKJPQDIILOLQBUKHYB"

    Returns: 0

  38. "YLCMQWRZYLVEVEVNJEWXSHNUBYDBZKYZXCLNYDMYOIEJOAXAEV"

    Returns: 0

  39. "CKSGKWHMIHLGKXTKAIJQSNBGPAGTVFSASKGCIPOTZAZJZUVBCG"

    Returns: 0

  40. "WUDLVLFQRXSJJYNUQCNPEOAFIVGNCZJYTOLOAQHTPZCBARXQVK"

    Returns: 0

  41. "AHGIEMXILHIFXUVXMCQECUFEOCWJODLOMRYSEWBRFLYCHUCUWU"

    Returns: 0

  42. "RFEFHAOXFZNTRLMXJPQQCPTKJXEHREIIJONSRCPYDCSWPGVZXM"

    Returns: 0

  43. "BKJKHPRZTBJCQZWJDLHGPZFFHAEEMVENGPZPFTQAUAFMZBXCPF"

    Returns: 0

  44. "GPJOQPUCLASTQRIXMZZJZEVAITCXAMBGELWUCRYNRQGJKPIYQK"

    Returns: 0

  45. "QFPYYTXAHZGLMFHOWGEPYMBKDLJTVQIMVZMVUKVCLEPXJZNHHT"

    Returns: 0

  46. "GZSJNBDITNWRPJOJTMNESFDDESKLOKSUKKFZNKHJAECPPSAKEO"

    Returns: 0

  47. "VTBZNNMDYGXKRFJGPQRPWTGNMHXSXNRSIUTYIHBGNBQGGZNXRE"

    Returns: 0

  48. "AVDOEDIBQZVZWQZEXAKLBCTHBGHUNWMPTQDATLDLNZMJPLPPMB"

    Returns: 0

  49. "DVXGCEARCNGXFLXAYBLLCAWTLLIXMKNRGKXKQYBUNJTUURUSUH"

    Returns: 0

  50. "HCPTQYSEKFWQRTAJTBFIKZCGSYZMGFKPJBIBBDGMKECEZFNVIV"

    Returns: 0

  51. "ABABABBBBABBABBBACCDEDFFFE"

    Returns: 0

  52. "AB"

    Returns: 2

  53. "AAAAAAAAAAAABBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCDDDDDDD"

    Returns: 0

  54. "AAABBBCCCDDDEEEFFF"

    Returns: 0

  55. "AAAAAAAAAAAAAAA"

    Returns: 1

  56. "AABB"

    Returns: 2

  57. "AABBBBB"

    Returns: 2

  58. "A"

    Returns: 1

  59. "ABCABABCABABCABABCABABCABABCAB"

    Returns: 0

  60. "AABBCC"

    Returns: 0

  61. "ABABAB"

    Returns: 2

  62. "AABBCCDD"

    Returns: 0

  63. "ABACADABRAAADAJA"

    Returns: 0

  64. "AAABBBCCCDDD"

    Returns: 0

  65. "AAAAAAAAAAAAAAAAABBBBBBB"

    Returns: 2

  66. "ABDSDWERWE"

    Returns: 0

  67. "ABC"

    Returns: 0

  68. "AAAABBBBCCCC"

    Returns: 0

  69. "ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE"

    Returns: 0

  70. "WWXXYYZZ"

    Returns: 0

  71. "AAABBB"

    Returns: 2

  72. "AAAAABBBBBCCCCC"

    Returns: 0

  73. "AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBB"

    Returns: 2

  74. "AAAAAAA"

    Returns: 1

  75. "AAAAAAAAAABBBBBBBBBB"

    Returns: 2

  76. "ABCDFABCDFABCDFABCDFABCDFABCDFABCDFABCDFABCDFABCD"

    Returns: 0

  77. "AAB"

    Returns: 2

  78. "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWX"

    Returns: 0

  79. "AAAABBBBCCCCDDEEEEFFFFFYYY"

    Returns: 0

  80. "AABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB"

    Returns: 2

  81. "AABBCCDDEEE"

    Returns: 0

  82. "AAAAAABB"

    Returns: 2

  83. "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUV"

    Returns: 0

  84. "AAAABBBBCCCCDDDD"

    Returns: 0

  85. "AAABB"

    Returns: 2

  86. "AAAAAAABBBBCCCC"

    Returns: 0

  87. "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

    Returns: 0

  88. "ABBBB"

    Returns: 2

  89. "ABABAABCCDE"

    Returns: 0

  90. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

    Returns: 1

  91. "AAAAAA"

    Returns: 1

  92. "WWXXYY"

    Returns: 0

  93. "ABGADGGGABCDDDDABBGGABCC"

    Returns: 0

  94. "AAABABBB"

    Returns: 2

  95. "AAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBB"

    Returns: 2

  96. "ABCDEFGHIJKLMNOPQRSTUVWXYZINJHUGNHCUBDKOUJHE"

    Returns: 0

  97. "XXWWXXYYZZ"

    Returns: 0

  98. "AAABBBCCC"

    Returns: 0

  99. "AAAABBBCCC"

    Returns: 0

  100. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB"

    Returns: 2

  101. "AAAAAAABCD"

    Returns: 0

  102. "AAAABBBBCCCCCDDDDDEEEEFFFF"

    Returns: 0

  103. "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYZ"

    Returns: 0

  104. "AAAABBBBCCCCAAAABBBBCCCCAAAABBBBCCCCAAAABBBBCCCC"

    Returns: 0

  105. "QAZWSXEDCRFVTGBYHNUJMIKOLPQAZWSXEDCRFVTGBYHNUJMIKO"

    Returns: 0

  106. "AAAAAAAAAABBBBBBBBBBBBCCCCCCCCCDDDDDDDDDAA"

    Returns: 0

  107. "ABB"

    Returns: 2

  108. "AABBCCCDDDAABBCCCDDDAABBCCCDDDAABBCCCDDDAABBCCCDDD"

    Returns: 0

  109. "ABBB"

    Returns: 2

  110. "ABABDEF"

    Returns: 0

  111. "ABCABCABCAB"

    Returns: 0

  112. "ABCAAAA"

    Returns: 0

  113. "AAAAAAABBBBBBBBB"

    Returns: 2

  114. "ABBA"

    Returns: 2

  115. "XYZABA"

    Returns: 0

  116. "AZ"

    Returns: 2

  117. "ABBBC"

    Returns: 0

  118. "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI"

    Returns: 0

  119. "AAAAAAAAAAAAAAAAAAA"

    Returns: 1

  120. "AAABBBCCCCDDDEEEEFFFF"

    Returns: 0

  121. "AAAABBBB"

    Returns: 2

  122. "ABCCCCC"

    Returns: 0

  123. "AABCC"

    Returns: 0

  124. "AAABBBCC"

    Returns: 0

  125. "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQ"

    Returns: 0

  126. "AAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBAAAAAAAA"

    Returns: 2

  127. "AAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBB"

    Returns: 2

  128. "ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCBCACA"

    Returns: 0


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: