Statistics

Problem Statement for "CharSwaps"

Problem Statement

You are given a String s containing only the letters 'a' and 'b'. The letters are arranged in a circle, so the last and first characters are adjacent.

You will perform a series of swaps until all the 'a's form one consecutive sequence and all the 'b's form another consecutive sequence. In each swap, you can select any two characters and swap them. Return the minimal number of swaps necessary to reach your goal.

Definition

Class:
CharSwaps
Method:
getMinCount
Parameters:
String
Returns:
int
Method signature:
int getMinCount(String s)
(be sure your method is public)

Constraints

  • s will contain between 1 and 15 characters, inclusive.
  • s will contain the letters 'a' and 'b' only.

Examples

  1. "ba"

    Returns: 0

    The letters are already arranged properly in this string.

  2. "aaaabbbbba"

    Returns: 0

    The letters are already arranged properly in this string as well.

  3. "abab"

    Returns: 1

    Swap the first two letters.

  4. "aabbaaabaaba"

    Returns: 2

  5. "abababababababa"

    Returns: 3

    The case with the largest possible answer.

  6. "aaaa"

    Returns: 0

  7. "a"

    Returns: 0

  8. "aaa"

    Returns: 0

  9. "aaaaa"

    Returns: 0

  10. "aaaaaa"

    Returns: 0

  11. "aaaaaaaaaa"

    Returns: 0

  12. "aaaaaaaaaaaaaa"

    Returns: 0

  13. "aaaaaaaaaaaaaaa"

    Returns: 0

  14. "aaaaaaaaaabaaaa"

    Returns: 0

  15. "aaaaaaaaabbbaaa"

    Returns: 0

  16. "aaaaaabbaaabbba"

    Returns: 2

  17. "aaaaaabbabaaaab"

    Returns: 1

  18. "aaaaabbbbb"

    Returns: 0

  19. "aaaaabbbbbbbbb"

    Returns: 0

  20. "aaab"

    Returns: 0

  21. "aaabaa"

    Returns: 0

  22. "aaababbaaababab"

    Returns: 3

  23. "aaabbaaabaababa"

    Returns: 3

  24. "aaba"

    Returns: 0

  25. "aabaaaaa"

    Returns: 0

  26. "aabaaaaaaaaaaba"

    Returns: 1

  27. "aabbababaabaaba"

    Returns: 2

  28. "aabbbaabaabbbab"

    Returns: 3

  29. "aabbbaba"

    Returns: 1

  30. "aabbbbaaaaa"

    Returns: 0

  31. "ab"

    Returns: 0

  32. "abaa"

    Returns: 0

  33. "abaaaaaaaaaaa"

    Returns: 0

  34. "abaaaabaa"

    Returns: 1

  35. "abaabbbabbbbbab"

    Returns: 2

  36. "abababababab"

    Returns: 3

  37. "abababababababb"

    Returns: 3

  38. "abababbaabbbbab"

    Returns: 3

  39. "ababbaaabbbabba"

    Returns: 3

  40. "ababbabab"

    Returns: 2

  41. "ababbbaaaaaabba"

    Returns: 2

  42. "ababbbaaabbbbab"

    Returns: 3

  43. "ababbbbaabbaaab"

    Returns: 2

  44. "abbaaaaabaaaaaa"

    Returns: 1

  45. "abbaababbabbbab"

    Returns: 3

  46. "abbabbaababaaab"

    Returns: 2

  47. "abbabbbbbabb"

    Returns: 2

  48. "abbbabbbbaabbba"

    Returns: 3

  49. "abbbbbabbbbbbbb"

    Returns: 1

  50. "b"

    Returns: 0

  51. "baaaaaaaaaaaaaa"

    Returns: 0

  52. "baaaaaaaaabbb"

    Returns: 0

  53. "baaaababaabaaaa"

    Returns: 2

  54. "baababbbaababab"

    Returns: 3

  55. "baabbaabbabaaaa"

    Returns: 2

  56. "baabbbaaaaabaab"

    Returns: 2

  57. "bababa"

    Returns: 1

  58. "bababbababababa"

    Returns: 3

  59. "bababbbaaabaaaa"

    Returns: 2

  60. "babbababbbabbbb"

    Returns: 2

  61. "babbbbbbbbabbb"

    Returns: 1

  62. "bb"

    Returns: 0

  63. "bba"

    Returns: 0

  64. "bbaaa"

    Returns: 0

  65. "bbaaaabaaaaaaab"

    Returns: 1

  66. "bbaaabaababbbab"

    Returns: 2

  67. "bbaabbababbb"

    Returns: 2

  68. "bbabbaabbbaaaba"

    Returns: 3

  69. "bbabbbbab"

    Returns: 1

  70. "bbb"

    Returns: 0

  71. "bbbabbbbbb"

    Returns: 0

  72. "bbbbaaaaaabbbbb"

    Returns: 0

  73. "bbbbabbbbbbbbbb"

    Returns: 0

  74. "bbbbbaabababaab"

    Returns: 2

  75. "bbbbbabbbbaabbb"

    Returns: 1

  76. "bbbbbabbbbbbbbb"

    Returns: 0

  77. "bbbbbba"

    Returns: 0

  78. "bbbbbbaaaaabbbb"

    Returns: 0

  79. "bbbbbbabbbbbbbb"

    Returns: 0

  80. "bbbbbbb"

    Returns: 0

  81. "bbbbbbba"

    Returns: 0

  82. "bbbbbbbabbb"

    Returns: 0

  83. "bbbbbbbbbababbb"

    Returns: 1

  84. "bbbbbbbbbbb"

    Returns: 0

  85. "bbbbbbbbbbbbb"

    Returns: 0

  86. "bbbbbbbbbbbbbab"

    Returns: 0

  87. "bbbbbbbbbbbbbba"

    Returns: 0

  88. "bbbbbbbbbbbbbbb"

    Returns: 0

  89. "abbbaaaabababab"

    Returns: 2

  90. "abaabbaaabbbbba"

    Returns: 2

  91. "abbbbbabab"

    Returns: 1

  92. "bbbbb"

    Returns: 0

  93. "bbbbaabab"

    Returns: 1

  94. "ababababab"

    Returns: 2

  95. "bbababaabbb"

    Returns: 1

  96. "abababababaaaaa"

    Returns: 2

  97. "ababbbaababa"

    Returns: 2

  98. "aabbbabbabab"

    Returns: 2

  99. "abaabaaab"

    Returns: 1

  100. "bbbbbaaaaa"

    Returns: 0

  101. "aabbaabbaabb"

    Returns: 2

  102. "abbababb"

    Returns: 1

  103. "abbabaababbabab"

    Returns: 3

  104. "abaabababbbabb"

    Returns: 2

  105. "aaaaab"

    Returns: 0

  106. "bababababababab"

    Returns: 3

  107. "aaaabbbbaaaba"

    Returns: 1

  108. "bbbaaa"

    Returns: 0

  109. "abbbaaabbba"

    Returns: 2


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: