Statistics

Problem Statement for "DoubleLetter"

Problem Statement

You are given a String S. You can modify this string by repeating the following process:
  1. Find the leftmost occurrence of two consecutive letters in S that are the same.
  2. If you found a pair of identical letters in the first step, delete those two letters from S.
For example, if S="aabccb", you can proceed as follows:
  1. Find and erase "aa", producing the string "bccb".
  2. Find and erase "cc", producing the string "bb".
  3. Find and erase "bb", producing the empty string.
For S="axxyybac" you can do at most two steps, erasing "xx" first and "yy" next. Once you obtain the string "abac", you are done. Note that you cannot erase the two "a"s because they are not consecutive. You want to change S into an empty string by repeating the operation described above. Return "Possible" if you can do that, and "Impossible" otherwise.

Definition

Class:
DoubleLetter
Method:
ableToSolve
Parameters:
String
Returns:
String
Method signature:
String ableToSolve(String S)
(be sure your method is public)

Constraints

  • S will contain between 1 and 50 characters.
  • Each character in S will be a lowercase English letter ('a'-'z').

Examples

  1. "aabccb"

    Returns: "Possible"

  2. "aabccbb"

    Returns: "Impossible"

    The process will terminate with a single 'b'.

  3. "abcddcba"

    Returns: "Possible"

    "abcddcba" -> "abccba" -> "abba" -> "aa" -> "".

  4. "abab"

    Returns: "Impossible"

    No two successive letters are the same, so we can't do any operation.

  5. "aaaaaaaaaa"

    Returns: "Possible"

  6. "aababbabbaba"

    Returns: "Impossible"

  7. "zzxzxxzxxzzx"

    Returns: "Possible"

  8. "rxmxzwjmvuxdwvnzeuuyxnqerjyywwqeewsgsagdguwttyag"

    Returns: "Impossible"

  9. "jczacqxvqzcvockopujxkauxxxhhpx"

    Returns: "Impossible"

  10. "mccwrkydwkmyrd"

    Returns: "Impossible"

  11. "nmbtptlyvonbvyllqfhryqhmrplfyo"

    Returns: "Impossible"

  12. "bxwtqqbxsafiishwyaaxysabsftxhb"

    Returns: "Impossible"

  13. "yrlzlcdnjbzrncydjb"

    Returns: "Impossible"

  14. "rr"

    Returns: "Possible"

  15. "myrmyr"

    Returns: "Impossible"

  16. "ampmkaqvndpdkvqn"

    Returns: "Impossible"

  17. "dmtsdjglisjglhmkxgkclegglkcsgsktjbebthjtix"

    Returns: "Impossible"

  18. "xhdyfhotyxtovdktadfvvaykatvayoyyod"

    Returns: "Impossible"

  19. "pkdujjlussdanvkkjpanvlakaj"

    Returns: "Impossible"

  20. "xyzxdgedymvzkolbelmgovkb"

    Returns: "Impossible"

  21. "gqjowaognvsgwucjdsnuijdgxscpaipxsjvq"

    Returns: "Impossible"

  22. "zzetimfuzuhzhdewfidwerrnment"

    Returns: "Impossible"

  23. "zzvv"

    Returns: "Possible"

  24. "ss"

    Returns: "Possible"

  25. "zphzhrrp"

    Returns: "Impossible"

  26. "myjmnmrruuqmneoqgkekmyorvrjmgv"

    Returns: "Impossible"

  27. "dngexedyubyvykhvyzkghxubzn"

    Returns: "Impossible"

  28. "hvutuwnqddtquhnoeuznnzoewv"

    Returns: "Impossible"

  29. "hotmqhvsstmvqo"

    Returns: "Impossible"

  30. "wgbkmkliwndvvejnzedemkbqjlgnenzvvkdibqbd"

    Returns: "Impossible"

  31. "pyvpnfpmnyfrpzppbyerqvfxfxmzybnqeddn"

    Returns: "Impossible"

  32. "vutdtmvvihlmtdrecvhtlrceiwzhtuwthz"

    Returns: "Impossible"

  33. "tttatooa"

    Returns: "Impossible"

  34. "vtmedefvtgtrubjbybefjganmbndrjevawijwybvivbvtu"

    Returns: "Impossible"

  35. "ffzfdppucafacduzff"

    Returns: "Impossible"

  36. "hjwjwh"

    Returns: "Impossible"

  37. "bkrcddbcrjbxdujrznxlvknklzhhcjrjbdqkhqhvcu"

    Returns: "Impossible"

  38. "emkxilnedipbnqdeplxmnbndqsnxdsxken"

    Returns: "Impossible"

  39. "rfqeqbzrinbdnfqifqzmnndmef"

    Returns: "Impossible"

  40. "lplbflsyjpjsyfbl"

    Returns: "Impossible"

  41. "uuxduuwwerfubrruexzbdnbyntrxbetfyddzxe"

    Returns: "Impossible"

  42. "hhkhkinkknhi"

    Returns: "Impossible"

  43. "nacanc"

    Returns: "Impossible"

  44. "yhiiiiryhr"

    Returns: "Impossible"

  45. "xpkhbunuxobhbyimuiyouknbpimi"

    Returns: "Impossible"

  46. "bqatpsataaktpiftiktnlnwfkdqsnkiiablwdnta"

    Returns: "Impossible"

  47. "wkmomsbcjdfoqbgkrgcmpdcfskooolpmqgoroqeoggwqlkcgej"

    Returns: "Impossible"

  48. "jgjollllojgjgesoofnqbdmfbbfmdxcrpprcxbqnfooseg"

    Returns: "Possible"

  49. "kerxssxrekdfccfd"

    Returns: "Possible"

  50. "zvloolvzpnwwnptt"

    Returns: "Possible"

  51. "mzsdxxgddgdatmrrmapvvpaoohlqjjqlcchtazroorzszm"

    Returns: "Possible"

  52. "zrssrtjjtzaxwgzzgfqmmqfbbwxa"

    Returns: "Possible"

  53. "bsxqdfeggefgjjgdqzccwyrmkhhkmrywzxsb"

    Returns: "Possible"

  54. "vcaiuppuilsoeeoslnnacv"

    Returns: "Possible"

  55. "fibbgvhhvgif"

    Returns: "Possible"

  56. "zxqbbqxz"

    Returns: "Possible"

  57. "uxwzxnjxooxjnvvxzwxu"

    Returns: "Possible"

  58. "ibapovddvopabi"

    Returns: "Possible"

  59. "vychiitthcyvjnfnnfnj"

    Returns: "Possible"

  60. "clyffffylcdbuubdktqtnaantqlwwltrxllxrkmnsoosnm"

    Returns: "Possible"

  61. "mm"

    Returns: "Possible"

  62. "awommowa"

    Returns: "Possible"

  63. "weewxiwavjsmmyysjvawigzisswwizgx"

    Returns: "Possible"

  64. "iiauuahhofxxfjjoxttx"

    Returns: "Possible"

  65. "vkqqmzzmkvlcclqnvllvvlxddxaqqarrlvhzknyynkzhnq"

    Returns: "Possible"

  66. "arrabmmlvvlbtrrtccmmzkkiizwttw"

    Returns: "Possible"

  67. "nllnzxcclpbffbplxzduooudfmmxnnxfhsshlzzgjcgkkgcjgl"

    Returns: "Possible"

  68. "pljffsjjsssjllkarrakpplczzkbvvbkbbwbbwiicp"

    Returns: "Possible"

  69. "htvyhhyvth"

    Returns: "Possible"

  70. "hcvmrskpbggbpksrmvch"

    Returns: "Possible"

  71. "liafvatioswcwxcvvcxwcwsoitavfail"

    Returns: "Possible"

  72. "vafkjjjjkfaccvwwkqqkemmejjuizziufjjf"

    Returns: "Possible"

  73. "uu"

    Returns: "Possible"

  74. "okkoppxxbbyehheybwksskwb"

    Returns: "Possible"

  75. "nwbdnndeyyezwzjjzwzbwjjnrmgxxaggaggmhfxxfhmgmr"

    Returns: "Possible"

  76. "xlpplx"

    Returns: "Possible"

  77. "vjqqjzeezxxxscjjbzwwzbjjczbqdgvctgrssrgtcvgdqbzsxv"

    Returns: "Possible"

  78. "ukqzohhotjjtzqku"

    Returns: "Possible"

  79. "ljazsifhkriksdmkkmdskirkhfiszajl"

    Returns: "Possible"

  80. "vmlbddbbblmbsccsbv"

    Returns: "Possible"

  81. "rhlfaakkaafeggeleedkkfqqfdccmhhmoccooohr"

    Returns: "Possible"

  82. "ofuukicbbcddikfxbbxoxx"

    Returns: "Possible"

  83. "hiihehheuudllduu"

    Returns: "Possible"

  84. "dllcylfztfftzflrxuuxrqppaxrrxaqyclld"

    Returns: "Possible"

  85. "osjjhhso"

    Returns: "Possible"

  86. "vvrroeolnpptxxddugguttrrtnloeorrwlljjw"

    Returns: "Possible"

  87. "tzzt"

    Returns: "Possible"

  88. "nbbzzbbn"

    Returns: "Possible"

  89. "ecpvbjaabuuooxxxxtlejfppfjeltbarqubejjebuqrajbvpce"

    Returns: "Possible"

  90. "iisbyxccngfhhzppzfgnjpillipttlljvvcaacxybsii"

    Returns: "Possible"

  91. "mlgssgwxpsspxwgslgcerqecimmiceqrecglsglm"

    Returns: "Possible"

  92. "fvwlgzbwggwbmhhmwddwzglwvf"

    Returns: "Possible"

  93. "ftgziqqjjgeegqqiefmbysdeedsybmfyeeyezgtf"

    Returns: "Possible"

  94. "ywoyhlqltvvtlqlhyowy"

    Returns: "Possible"

  95. "bommohhaabbbsxwsswpttnnkkpwwxsrrhhsssxxfzhhzfffsvv"

    Returns: "Possible"

  96. "gxjjxjbgcttcgbjgjixxuddeeuijdkkd"

    Returns: "Possible"

  97. "izsyrvwbsxlwgvwdqwellewqdwvgwlxsbwvryszi"

    Returns: "Possible"

  98. "a"

    Returns: "Impossible"

  99. "aba"

    Returns: "Impossible"

  100. "abc"

    Returns: "Impossible"

  101. "abbc"

    Returns: "Impossible"

  102. "aa"

    Returns: "Possible"

  103. "abcdefghijklmnoonmlkjihgfedcba"

    Returns: "Possible"

  104. "aaa"

    Returns: "Impossible"

  105. "ab"

    Returns: "Impossible"

  106. "aacdfdf"

    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: