Statistics

Problem Statement for "GoodString"

Problem Statement

Chandan loves to play with strings. He just learned a new operation: inserting one string X into another string Y.

When inserting X into Y, it is also allowed to place X at the beginning or at the end of Y. For example, there are exactly five ways how to insert the string "ab" into the string "????": you can produce one of the strings "ab????", "?ab???", "??ab??", "???ab?", and "????ab".

According to Chandan, a good string is a string that can be constructed in the following way: Initially, he takes the empty string "". Then, he performs a sequence of zero or more steps. In each step he inserts the string "ab" anywhere into the current string.

According to the above definition, the strings "ab", "aabb", and "aababb" are good while the strings "aab", "ba", and "abbb" are not good.

Chandan's friend Ravi came up with a String s. Ravi asked Chandan whether it is a good string. Return "Good" (quotes for clarity) if the string is good, or "Bad" if the string is not good.

Definition

Class:
GoodString
Method:
isGood
Parameters:
String
Returns:
String
Method signature:
String isGood(String s)
(be sure your method is public)

Constraints

  • s will contain between 1 and 50 characters, inclusive.
  • Each element of s will be either 'a' or 'b'.

Examples

  1. "ab"

    Returns: "Good"

    Chandan can start with an empty string and insert "ab".

  2. "aab"

    Returns: "Bad"

  3. "aabb"

    Returns: "Good"

    Chandan can construct this string as follows: "" -> "ab" -> "aabb".

  4. "ababab"

    Returns: "Good"

    One way to construct this string is to append "ab" to the current string three times.

  5. "abaababababbaabbaaaabaababaabbabaaabbbbbbbb"

    Returns: "Bad"

  6. "aaaaaaaabbbaaabaaabbabababababaabbbbaabbabbbbbbabb"

    Returns: "Good"

  7. "a"

    Returns: "Bad"

  8. "b"

    Returns: "Bad"

  9. "bb"

    Returns: "Bad"

  10. "ab"

    Returns: "Good"

  11. "ba"

    Returns: "Bad"

  12. "aa"

    Returns: "Bad"

  13. "bbbb"

    Returns: "Bad"

  14. "abbb"

    Returns: "Bad"

  15. "babb"

    Returns: "Bad"

  16. "aabb"

    Returns: "Good"

  17. "bbab"

    Returns: "Bad"

  18. "abab"

    Returns: "Good"

  19. "baab"

    Returns: "Bad"

  20. "aaab"

    Returns: "Bad"

  21. "bbba"

    Returns: "Bad"

  22. "abba"

    Returns: "Bad"

  23. "baba"

    Returns: "Bad"

  24. "aaba"

    Returns: "Bad"

  25. "bbaa"

    Returns: "Bad"

  26. "abaa"

    Returns: "Bad"

  27. "baaa"

    Returns: "Bad"

  28. "aaaa"

    Returns: "Bad"

  29. "aaabbb"

    Returns: "Good"

  30. "aaaabbbb"

    Returns: "Good"

  31. "aaabbababb"

    Returns: "Good"

  32. "aaaababbbabb"

    Returns: "Good"

  33. "aaaaabbbbbaabb"

    Returns: "Good"

  34. "aaabaaababbbabbb"

    Returns: "Good"

  35. "aaabaababbaababbbb"

    Returns: "Good"

  36. "abaaaaaabababbbbabbb"

    Returns: "Good"

  37. "aaaabbbabb"

    Returns: "Good"

  38. "aaaabaaabaabbbabbbbb"

    Returns: "Good"

  39. "aaaabbaaaaababbabaaababbbbbbbb"

    Returns: "Good"

  40. "aaaaaaabbbabaaaaaaabbaaaabbbbabbbbbbbbbb"

    Returns: "Good"

  41. "aaaaaaaaaabababbbababbbaaaabaabbabbababbbbabbbabbb"

    Returns: "Good"

  42. "aaaaabaabaaaabaabaabaaabbbbbbbabbabbbbbb"

    Returns: "Good"

  43. "aabaaaaaabaaabbabaaabbbbbbbababbaabbabbb"

    Returns: "Good"

  44. "aaaaaabaaabbbaabaabbaababbbabababbbababbbb"

    Returns: "Good"

  45. "aaaabbaabaaaaaabbaaaabbaaabababbbbbbbbbbbb"

    Returns: "Good"

  46. "aaaabaaababbaaaabaaaabbaabbbbababbbabbabbbbb"

    Returns: "Good"

  47. "aabaaaaaaaababbabaaabababaabbbabbbbabbabbbbb"

    Returns: "Good"

  48. "aabaaaaaabaabbaaabbaabbabbbbaabbabababbbbababb"

    Returns: "Good"

  49. "aaaabaaaaaababababaabaabababbabbbbaabbbbbbbabb"

    Returns: "Good"

  50. "aabaabaabaaaaaaaabaabbaabbbbabbaabbbbbbabbaabbbb"

    Returns: "Good"

  51. "aaaaaaabaababbaaaabaabbabbaaaababbbbbbaabbbbbbbb"

    Returns: "Good"

  52. "aaaaaaaabbbaaabaaabbabababababaabbbbaabbabbbbbbabb"

    Returns: "Good"

  53. "aaabaaaabbbaaabaabaabaabbabaabbaabbabbbaabbbabbbbb"

    Returns: "Good"

  54. "babaab"

    Returns: "Bad"

  55. "abbaaabb"

    Returns: "Bad"

  56. "bbbaaabaab"

    Returns: "Bad"

  57. "abaabababbab"

    Returns: "Good"

  58. "babbaabaaaabbb"

    Returns: "Bad"

  59. "babbbbaaaabaabab"

    Returns: "Bad"

  60. "aababbabbaabbaaabb"

    Returns: "Bad"

  61. "baaaaaaabbbaaabbbbbb"

    Returns: "Bad"

  62. "bbaababaab"

    Returns: "Bad"

  63. "bbabbaabababbaabaaab"

    Returns: "Bad"

  64. "baabaabbabaababaabaabaababbbbb"

    Returns: "Bad"

  65. "aabbabbbbbaaababaabbaabaaabbbbabbaabaaab"

    Returns: "Bad"

  66. "bababbabababbbaabbababbbaabababbaabbaababaaaabaaab"

    Returns: "Bad"

  67. "baababbbaaaabaaaabbabbbaababbaabababbbab"

    Returns: "Bad"

  68. "bbaabaabbaabbabbbbaaaaaabaaabaabbabbbbab"

    Returns: "Bad"

  69. "abaababababbaabbaaaabaababaabbabaaabbbbbbb"

    Returns: "Good"

  70. "babababaaabbbaababababbbbaababaabaaababbab"

    Returns: "Bad"

  71. "baaabaabbaaabbbbbbabbabaabaababbaabbaaaaabbb"

    Returns: "Bad"

  72. "abaaaaababbaaabbaaabbbabaababbbabbbbbbbaaaab"

    Returns: "Bad"

  73. "babaaaaaabaaabbababbabbbababbaabbabbbbaaaabbab"

    Returns: "Bad"

  74. "abbbbabbaaaaabbaababaabbabaaababaababbbbbabaab"

    Returns: "Bad"

  75. "ababbbaababbaababaababaabaaaabababaaabbbabbbabbb"

    Returns: "Bad"

  76. "abbbbabaaabbbbaabbaabbbbbaababbaaaabbbaaaaabaaab"

    Returns: "Bad"

  77. "ababbaababaabbabbabbbaabaaabbaaaabbaaaabbaabbbbbab"

    Returns: "Bad"

  78. "baabbbbabbabbababaaabbaaaabbabbbbaaabbaaaaaaababbb"

    Returns: "Bad"

  79. "bbbbbbaaaaaa"

    Returns: "Bad"

  80. "ababba"

    Returns: "Bad"

  81. "bbbaaa"

    Returns: "Bad"

  82. "abbaab"

    Returns: "Bad"

  83. "baabb"

    Returns: "Bad"

  84. "abbbaaab"

    Returns: "Bad"

  85. "aaaabb"

    Returns: "Bad"


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: