Statistics

Problem Statement for "ABBADiv1"

Problem Statement

One day, Jamie noticed that many English words only use the letters A and B. Examples of such words include "AB" (short for abdominal), "BAA" (the noise a sheep makes), "AA" (a type of lava), and "ABBA" (a Swedish pop sensation).


Inspired by this observation, Jamie created a simple game. You are given two Strings: initial and target. The goal of the game is to find a sequence of valid moves that will change initial into target. There are two types of valid moves:

  • Add the letter A to the end of the string.
  • Add the letter B to the end of the string and then reverse the entire string. (After the reversal the newly-added B becomes the first character of the string).

Return "Possible" (quotes for clarity) if there is a sequence of valid moves that will change initial into target. Otherwise, return "Impossible".

Definition

Class:
ABBADiv1
Method:
canObtain
Parameters:
String, String
Returns:
String
Method signature:
String canObtain(String initial, String target)
(be sure your method is public)

Constraints

  • The length of initial will be between 1 and 49, inclusive.
  • The length of target will be between 2 and 50, inclusive.
  • target will be longer than initial.
  • Each character in initial and each character in target will be either 'A' or 'B'.

Examples

  1. "A"

    "BABA"

    Returns: "Possible"

    Jamie can perform the following moves: Initially, the string is "A". Jamie adds a 'B' to the end of the string and then reverses the string. Now the string is "BA". Jamie adds a 'B' to the end of the string and then reverses the string. Now the string is "BAB". Jamie adds an 'A' to the end of the string. Now the string is "BABA". Since there is a sequence of moves which starts with "A" and creates the string "BABA", the answer is "Possible".

  2. "BAAAAABAA"

    "BAABAAAAAB"

    Returns: "Possible"

    Jamie can add a 'B' to the end of the string and then reverse the string.

  3. "A"

    "ABBA"

    Returns: "Impossible"

  4. "AAABBAABB"

    "BAABAAABAABAABBBAAAAAABBAABBBBBBBABB"

    Returns: "Possible"

  5. "AAABAAABB"

    "BAABAAABAABAABBBAAAAAABBAABBBBBBBABB"

    Returns: "Impossible"

  6. "BABABBABBBBBBABA"

    "BBBBBBABABBABBBABABBBBBBABBABABBBBBBBABAABBBAAAAAB"

    Returns: "Possible"

  7. "BAAABBABBBBBBABA"

    "BBBBBBABABBABBBABABBBBBBABBABABBBBBBBABAABBBAAAAAB"

    Returns: "Impossible"

  8. "BAAAAABBBBABBABBBAABABAAABAABABABAABAB"

    "BABBBAABABAABABABAABAAABABAABBBABBABBBBAAAAABBBBAA"

    Returns: "Possible"

  9. "BAAAAABBBBABBABBBAABBBAAABAABABABAABAB"

    "BABBBAABABAABABABAABAAABABAABBBABBABBBBAAAAABBBBAA"

    Returns: "Impossible"

  10. "BBBABAABAAABAAAAAABBAABAAAAABBABBBBBA"

    "BABBAABBBABAABAAABAAAAAABBAABAAAAABBABBBBBABBAABAA"

    Returns: "Possible"

  11. "BBBABAABAAABAAAAAABBAABAAAAABBABBBBBB"

    "BABBAABBBABAABAAABAAAAAABBAABAAAAABBABBBBBABBAABAA"

    Returns: "Impossible"

  12. "ABABABBABABBAABAABBAABAAAAAB"

    "BAAAAAAAABAABABAAAAABAABBAABAABBABABBABABABAABAAAA"

    Returns: "Possible"

  13. "BBABABBABABBAABAABBAABAAAAAB"

    "BAAAAAAAABAABABAAAAABAABBAABAABBABABBABABABAABAAAA"

    Returns: "Impossible"

  14. "BBBAABAABABBABAABBABABBABAABABBABBAABAAABBBBBBB"

    "BBBBAABAABABBABAABBABABBABAABABBABBAABAAABBBBBBBAB"

    Returns: "Possible"

  15. "BBBAABAABABBABAABBABABBABAABABBABBABBAAABBBBBBB"

    "BBBBAABAABABBABAABBABABBABAABABBABBAABAAABBBBBBBAB"

    Returns: "Impossible"

  16. "BAAB"

    "BABAAAABBAABAAAABAAABAB"

    Returns: "Possible"

  17. "BABB"

    "BABAAAABBAABAAAABAAABAB"

    Returns: "Impossible"

  18. "A"

    "BBAAABBBBAABABABBAAABABAABAAAABABBAABBBAAABB"

    Returns: "Possible"

  19. "B"

    "BBAAABBBBAABABABBAAABABAABAAAABABBAABBBAAABB"

    Returns: "Possible"

  20. "BBBBAABB"

    "BBBBBAABBAAAAABAA"

    Returns: "Possible"

  21. "BABBAABB"

    "BBBBBAABBAAAAABAA"

    Returns: "Impossible"

  22. "AB"

    "BABBAAABAABBBABBBBAAABBBAABA"

    Returns: "Possible"

  23. "AA"

    "BABBAAABAABBBABBBBAAABBBAABA"

    Returns: "Impossible"

  24. "ABA"

    "BABBBBAABBBAABABAABABBBBAB"

    Returns: "Possible"

  25. "BBA"

    "BABBBBAABBBAABABAABABBBBAB"

    Returns: "Impossible"

  26. "A"

    "BBBABABBAABAAABBBBBAABAABAABBABABBBBBABBBBABAAAABA"

    Returns: "Possible"

  27. "B"

    "BBBABABBAABAAABBBBBAABAABAABBABABBBBBABBBBABAAAABA"

    Returns: "Possible"

  28. "BBAABBABBABABBAAABAABABBAABABABBABBBBAABAABBABBBB"

    "BBBBBABBAABAABBBBABBABABAABBABAABAAABBABABBABBAABB"

    Returns: "Possible"

  29. "ABAABBABBABABBAAABAABABBAABABABBABBBBAABAABBABBBB"

    "BBBBBABBAABAABBBBABBABABAABBABAABAAABBABABBABBAABB"

    Returns: "Impossible"

  30. "AAAAA"

    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

    Returns: "Possible"

  31. "BBBBB"

    "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"

    Returns: "Possible"

  32. "AAAAA"

    "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"

    Returns: "Impossible"

  33. "BBBBB"

    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

    Returns: "Impossible"

  34. "BBBAA"

    "BAABAAABBBBAAAAAABAAABABBAAABAAABAABBBBAABAABBAABA"

    Returns: "Impossible"

  35. "BABABAAAAB"

    "AABABAAAAAAABBBBBAABAAAABBABBAABBAABABABABBABAAABB"

    Returns: "Impossible"

  36. "ABBAAAABABBABAAAAABB"

    "BABBAAAABBAABBBAAABBBBBBAABBAABABAAABBAABBABBBBBAB"

    Returns: "Impossible"

  37. "ABBBBBBBBBBBABABBA"

    "BABBBBBBBBBBBABABBA"

    Returns: "Impossible"

  38. "ABBBBBBBBBBBABABBA"

    "BABBABABBBBBBBBBBBA"

    Returns: "Possible"

  39. "AAABAAAAABAABBBAAABABABBBBABBBABABBAAABBBBBABA"

    "AABABBBBBAAABBABABBBABBBBABABAAABBBAABAAAAABAAAB"

    Returns: "Impossible"

  40. "AAABAAAAABAABBBAAABABABBBBABBBABABBAAABBBBBABA"

    "BABABBBBBAAABBABABBBABBBBABABAAABBBAABAAAAABAAAA"

    Returns: "Possible"

  41. "AAAAAAAAAAAAAAAAAAAAAAAAAB"

    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB"

    Returns: "Impossible"

  42. "BB"

    "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBA"

    Returns: "Possible"

  43. "BB"

    "ABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"

    Returns: "Impossible"

  44. "BABBBAAAB"

    "BAAAAABABABABABAABABBBAAABBABBBAAABB"

    Returns: "Possible"

  45. "BABABAAAB"

    "BAAAAABABABABABAABABBBAAABBABBBAAABB"

    Returns: "Impossible"

  46. "B"

    "AB"

    Returns: "Impossible"

  47. "BAABBBBAAB"

    "BAABBABBBBBBAAAABABAABBBBAABBBBABAAABABBAAAABBAAAA"

    Returns: "Possible"

  48. "BBB"

    "ABBB"

    Returns: "Impossible"

  49. "BA"

    "BABABBAAAAAAAAAABBBAAAABBAAABBABBBBBABAABBAABBAB"

    Returns: "Possible"

  50. "BBAA"

    "ABBAA"

    Returns: "Impossible"

  51. "BAB"

    "AAABAB"

    Returns: "Impossible"

  52. "A"

    "ABAB"

    Returns: "Impossible"

  53. "AA"

    "ABAAB"

    Returns: "Impossible"

  54. "BBB"

    "ABBBBBA"

    Returns: "Impossible"

  55. "A"

    "BABABABABABABABABABABABABABABABABABABABABABABABABA"

    Returns: "Possible"

  56. "AA"

    "ABAA"

    Returns: "Impossible"

  57. "AAAA"

    "AAAAAAA"

    Returns: "Possible"

  58. "BBA"

    "ABABBBAABBABBAAAAABABAABBBBABBABBBBBBBBBBABBABABAA"

    Returns: "Impossible"

  59. "AB"

    "ABBB"

    Returns: "Impossible"

  60. "A"

    "AA"

    Returns: "Possible"

  61. "BB"

    "ABBA"

    Returns: "Impossible"

  62. "AAB"

    "ABAABAB"

    Returns: "Impossible"

  63. "BA"

    "ABAA"

    Returns: "Impossible"

  64. "AA"

    "ABAABA"

    Returns: "Impossible"

  65. "A"

    "ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

    Returns: "Impossible"

  66. "A"

    "AB"

    Returns: "Impossible"

  67. "AB"

    "BAB"

    Returns: "Impossible"

  68. "ABB"

    "AABBA"

    Returns: "Impossible"

  69. "ABBA"

    "BABBAABA"

    Returns: "Possible"

  70. "ABAB"

    "BABAB"

    Returns: "Impossible"

  71. "BA"

    "BAAB"

    Returns: "Possible"

  72. "A"

    "BAAAAAAA"

    Returns: "Possible"

  73. "B"

    "ABA"

    Returns: "Impossible"

  74. "BAB"

    "ABABABA"

    Returns: "Impossible"

  75. "BBB"

    "BBBBB"

    Returns: "Possible"

  76. "BAB"

    "ABABA"

    Returns: "Impossible"

  77. "BAAB"

    "BAAAABAABA"

    Returns: "Possible"

  78. "AB"

    "ABB"

    Returns: "Impossible"

  79. "AAAAAAB"

    "AAAAAABA"

    Returns: "Possible"

  80. "ABA"

    "AABA"

    Returns: "Impossible"

  81. "AB"

    "AABA"

    Returns: "Impossible"

  82. "BB"

    "AABBAA"

    Returns: "Impossible"

  83. "AAA"

    "AAABAAABAAA"

    Returns: "Impossible"

  84. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

    "BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

    Returns: "Possible"

  85. "BA"

    "BABB"

    Returns: "Impossible"

  86. "BBAB"

    "ABBABA"

    Returns: "Impossible"

  87. "B"

    "BBA"

    Returns: "Possible"

  88. "B"

    "BBBB"

    Returns: "Possible"

  89. "A"

    "ABABA"

    Returns: "Impossible"

  90. "AABA"

    "AABAAA"

    Returns: "Possible"

  91. "BB"

    "BBBABAB"

    Returns: "Impossible"


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: