Statistics

Problem Statement for "StringReplacements"

Problem Statement

You are given a String that initially contains only a single letter. After every second of time, all occurrences of the letter 'a' are replaced with "acb", all occurrences of the letter 'b' are replaced with "baa", and all occurrences of the letter 'c' are replaced with "bcb". These replacements happen simultaneously during each second. You are given three ints: left, right, and nSeconds. Take the substring between positions left and right (both 0-based), inclusive, after nSeconds, and return a int[] containing exactly 3 elements. The first element is the number of 'a's in the substring, the second element is the number of 'b's, and the third element is the number of 'c's. For example, if letter = "a", then after 2 seconds, the string will be "acbbcbbaa". If left = 2 and right = 6, the substring is "bbcbb", which contains no 'a's, 4 'b's, and 1 'c'. Therefore, you will return {0, 4, 1}.

Definition

Class:
StringReplacements
Method:
substringCounter
Parameters:
String, int, int, int
Returns:
int[]
Method signature:
int[] substringCounter(String letter, int left, int right, int nSeconds)
(be sure your method is public)

Constraints

  • letter will be equal to "a", "b" or "c".
  • right will be between 0 and (3^nSeconds)-1, inclusive.
  • left will be between 0 and right, inclusive.
  • nSeconds will be between 0 and 20, inclusive.
  • left and right will each be less than or equal to 2147483647.

Examples

  1. "a"

    2

    6

    2

    Returns: {0, 4, 1 }

    The example from the problem statement.

  2. "a"

    0

    2

    1

    Returns: {1, 1, 1 }

    The resulting string will be "acb".

  3. "c"

    1

    4

    2

    Returns: {2, 1, 1 }

  4. "b"

    4

    12

    3

    Returns: {2, 4, 3 }

  5. "b"

    5

    214

    10

    Returns: {85, 84, 41 }

  6. "a"

    0

    2147483647

    20

    Returns: {858993464, 858993456, 429496728 }

  7. "b"

    0

    2147483647

    20

    Returns: {858993462, 858993457, 429496729 }

  8. "c"

    0

    2147483647

    20

    Returns: {858993463, 858993456, 429496729 }

  9. "b"

    23746

    2147413647

    20

    Returns: {858955959, 858955962, 429477981 }

  10. "c"

    2147483647

    2147483647

    20

    Returns: {0, 0, 1 }

  11. "b"

    2873475

    1854960284

    20

    Returns: {740834722, 740834725, 370417363 }

  12. "a"

    4837

    475957

    18

    Returns: {188449, 188448, 94224 }

  13. "c"

    0

    0

    0

    Returns: {0, 0, 1 }

  14. "c"

    0

    0

    1

    Returns: {0, 1, 0 }

  15. "c"

    1

    5

    2

    Returns: {2, 2, 1 }

  16. "a"

    1

    3

    3

    Returns: {0, 2, 1 }

  17. "c"

    36

    53

    4

    Returns: {8, 7, 3 }

  18. "b"

    48

    130

    5

    Returns: {35, 32, 16 }

  19. "b"

    8

    276

    6

    Returns: {109, 108, 52 }

  20. "c"

    6

    226

    7

    Returns: {90, 87, 44 }

  21. "a"

    1482

    1595

    8

    Returns: {49, 45, 20 }

  22. "c"

    2135

    8055

    9

    Returns: {2369, 2368, 1184 }

  23. "b"

    10763

    24259

    10

    Returns: {5400, 5398, 2699 }

  24. "a"

    6974

    90230

    11

    Returns: {33301, 33305, 16651 }

  25. "b"

    29441

    325620

    12

    Returns: {118473, 118472, 59235 }

  26. "b"

    1080828

    1113256

    13

    Returns: {12973, 12973, 6483 }

  27. "c"

    1416817

    4388432

    14

    Returns: {1188643, 1188649, 594324 }

  28. "a"

    1999861

    4338840

    15

    Returns: {935590, 935595, 467795 }

  29. "b"

    1360319

    1627794

    16

    Returns: {106992, 106988, 53496 }

  30. "a"

    94311529

    124010998

    17

    Returns: {11879790, 11879788, 5939892 }

  31. "c"

    57402281

    73371725

    18

    Returns: {6387777, 6387779, 3193889 }

  32. "c"

    27556768

    81706870

    19

    Returns: {21660046, 21660038, 10830019 }

  33. "a"

    424844632

    1903448849

    20

    Returns: {591441687, 591441687, 295720844 }

  34. "c"

    0

    0

    0

    Returns: {0, 0, 1 }

  35. "c"

    1

    2

    1

    Returns: {0, 1, 1 }

  36. "b"

    2

    8

    2

    Returns: {3, 2, 2 }

  37. "a"

    5

    26

    3

    Returns: {10, 9, 3 }

  38. "a"

    15

    80

    4

    Returns: {28, 25, 13 }

  39. "c"

    209

    242

    5

    Returns: {14, 13, 7 }

  40. "b"

    470

    728

    6

    Returns: {104, 103, 52 }

  41. "c"

    844

    2186

    7

    Returns: {537, 537, 269 }

  42. "a"

    2169

    6560

    8

    Returns: {1758, 1756, 878 }

  43. "c"

    9160

    19682

    9

    Returns: {4207, 4211, 2105 }

  44. "a"

    3933

    59048

    10

    Returns: {22043, 22047, 11026 }

  45. "b"

    147748

    177146

    11

    Returns: {11759, 11760, 5880 }

  46. "b"

    371367

    531440

    12

    Returns: {64028, 64031, 32015 }

  47. "b"

    4292

    1594322

    13

    Returns: {636014, 636012, 318005 }

  48. "c"

    3569373

    4782968

    14

    Returns: {485440, 485437, 242719 }

  49. "a"

    3362151

    14348906

    15

    Returns: {4394704, 4394702, 2197350 }

  50. "c"

    10692663

    43046720

    16

    Returns: {12941621, 12941626, 6470811 }

  51. "b"

    19140890

    129140162

    17

    Returns: {43999710, 43999708, 21999855 }

  52. "a"

    142851957

    387420488

    18

    Returns: {97827411, 97827415, 48913706 }

  53. "c"

    904748755

    1162261466

    19

    Returns: {103005085, 103005085, 51502542 }

  54. "c"

    352644964

    2147483647

    20

    Returns: {717935481, 717935469, 358967734 }

  55. "b"

    0

    0

    0

    Returns: {0, 1, 0 }

  56. "c"

    0

    2

    1

    Returns: {0, 2, 1 }

  57. "b"

    0

    8

    2

    Returns: {4, 3, 2 }

  58. "c"

    0

    26

    3

    Returns: {12, 10, 5 }

  59. "c"

    0

    80

    4

    Returns: {32, 32, 17 }

  60. "b"

    0

    242

    5

    Returns: {98, 97, 48 }

  61. "a"

    0

    728

    6

    Returns: {291, 292, 146 }

  62. "b"

    0

    2186

    7

    Returns: {874, 875, 438 }

  63. "b"

    0

    6560

    8

    Returns: {2624, 2625, 1312 }

  64. "a"

    0

    19682

    9

    Returns: {7873, 7873, 3937 }

  65. "c"

    0

    59048

    10

    Returns: {23620, 23620, 11809 }

  66. "b"

    0

    177146

    11

    Returns: {70858, 70859, 35430 }

  67. "b"

    0

    531440

    12

    Returns: {212576, 212577, 106288 }

  68. "a"

    0

    1594322

    13

    Returns: {637729, 637729, 318865 }

  69. "b"

    0

    4782968

    14

    Returns: {1913188, 1913187, 956594 }

  70. "c"

    0

    14348906

    15

    Returns: {5739564, 5739562, 2869781 }

  71. "a"

    0

    43046720

    16

    Returns: {17218689, 17218688, 8609344 }

  72. "c"

    0

    129140162

    17

    Returns: {51656064, 51656066, 25828033 }

  73. "b"

    0

    387420488

    18

    Returns: {154968196, 154968195, 77484098 }

  74. "c"

    0

    1162261466

    19

    Returns: {464904588, 464904586, 232452293 }

  75. "c"

    0

    2147483647

    20

    Returns: {858993463, 858993456, 429496729 }

  76. "a"

    66

    14348867

    15

    Returns: {5739518, 5739523, 2869761 }

  77. "a"

    52

    43046716

    16

    Returns: {17218664, 17218666, 8609335 }

  78. "a"

    6

    129140142

    17

    Returns: {51656054, 51656055, 25828028 }

  79. "c"

    0

    387420450

    18

    Returns: {154968180, 154968182, 77484089 }

  80. "b"

    14

    1162261367

    19

    Returns: {464904542, 464904542, 232452270 }

  81. "a"

    25

    2147483622

    20

    Returns: {858993442, 858993438, 429496718 }

  82. "a"

    10

    2147483646

    20

    Returns: {858993461, 858993451, 429496725 }

  83. "a"

    0

    2140000000

    20

    Returns: {856000009, 855999995, 427999997 }

  84. "b"

    4

    12

    3

    Returns: {2, 4, 3 }

  85. "c"

    777

    243178941

    20

    Returns: {97271266, 97271266, 48635633 }

  86. "c"

    10

    2000000000

    20

    Returns: {799999996, 799999999, 399999996 }

  87. "a"

    0

    2147483647

    20

    Returns: {858993464, 858993456, 429496728 }

  88. "a"

    0

    2123456789

    20

    Returns: {849382719, 849382714, 424691357 }

  89. "b"

    0

    2147483647

    20

    Returns: {858993462, 858993457, 429496729 }

  90. "a"

    0

    62125646

    20

    Returns: {24850259, 24850260, 12425128 }

  91. "a"

    0

    2147483646

    20

    Returns: {858993464, 858993456, 429496727 }

  92. "b"

    4

    2147483647

    20

    Returns: {858993459, 858993456, 429496729 }

  93. "a"

    0

    2147483645

    20

    Returns: {858993463, 858993456, 429496727 }

  94. "a"

    0

    2100000000

    20

    Returns: {840000005, 839999999, 419999997 }

  95. "a"

    12

    2147483646

    20

    Returns: {858993459, 858993451, 429496725 }

  96. "a"

    0

    2000000000

    20

    Returns: {800000002, 800000002, 399999997 }

  97. "a"

    1

    2147483647

    20

    Returns: {858993463, 858993456, 429496728 }

  98. "b"

    111

    2000000000

    20

    Returns: {799999955, 799999958, 399999977 }

  99. "b"

    666

    2147483647

    20

    Returns: {858993195, 858993192, 429496595 }

  100. "c"

    1

    2147483647

    20

    Returns: {858993463, 858993455, 429496729 }

  101. "a"

    21474834

    2147483471

    20

    Returns: {850403459, 850403453, 425201726 }

  102. "b"

    15000

    2147483647

    20

    Returns: {858987462, 858987457, 429493729 }

  103. "a"

    0

    0

    0

    Returns: {1, 0, 0 }

  104. "b"

    54568

    54568

    20

    Returns: {1, 0, 0 }

  105. "c"

    1

    400

    20

    Returns: {161, 158, 81 }

  106. "c"

    74735

    345345345

    20

    Returns: {138108249, 138108243, 69054119 }

  107. "a"

    2147483647

    2147483647

    20

    Returns: {0, 0, 1 }


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: