Statistics

Problem Statement for "WolfDelaymaster"

Problem Statement

Wolf Sothe is playing the game Delaymaster. In this game, he can create new words according to the following rules:
  1. For each positive integer n, the string which consists of n copies of 'w', then n copies of 'o', then n copies of 'l', and finally n copies of 'f' is a valid word.
  2. The concatenation of two valid words is a valid word.
  3. Only the words that can be obtained by rules 1 and 2 are valid. There are no other valid words.
Thus, for example:
  • By rule 1, "wolf", "wwoollff", and "wwwooolllfff" are valid words.
  • Then, by rule 2, "wolfwwoollff" is a valid word.
  • By applying rule 2 twice, "wolfwwoollffwolf" is a valid word.
  • The string "wfol" is not a valid word (order matters).
  • The string "wwolfolf" is not a valid word (we can only concatenate, not insert one word into another).
  • The string "wwwoolllfff" is not a valid word (only two 'o's instead of three).
You are given a String str. Return "VALID" if str is a valid word and "INVALID" otherwise. Note that the return value is case-sensitive: you must return the strings "VALID" and "INVALID" in all-uppercase.

Definition

Class:
WolfDelaymaster
Method:
check
Parameters:
String
Returns:
String
Method signature:
String check(String str)
(be sure your method is public)

Constraints

  • str will contain between 1 and 50 characters, inclusive.
  • Each character in str will be 'w', 'o', 'l' or 'f'.

Examples

  1. "wolf"

    Returns: "VALID"

    The first valid word from the examples in the problem statement.

  2. "wwolfolf"

    Returns: "INVALID"

    The second invalid word from the examples in the problem statement.

  3. "wolfwwoollffwwwooolllfffwwwwoooollllffff"

    Returns: "VALID"

  4. "flowolf"

    Returns: "INVALID"

  5. "o"

    Returns: "INVALID"

  6. "fo"

    Returns: "INVALID"

  7. "lfw"

    Returns: "INVALID"

  8. "llwl"

    Returns: "INVALID"

  9. "ofwff"

    Returns: "INVALID"

  10. "fwwloo"

    Returns: "INVALID"

  11. "llwolow"

    Returns: "INVALID"

  12. "flffwwff"

    Returns: "INVALID"

  13. "lllfoffff"

    Returns: "INVALID"

  14. "ffwffwwoow"

    Returns: "INVALID"

  15. "wflolwfolwo"

    Returns: "INVALID"

  16. "wlwwlfolflow"

    Returns: "INVALID"

  17. "ofwwoooffwlll"

    Returns: "INVALID"

  18. "wwfwfllwowolfl"

    Returns: "INVALID"

  19. "ollooolwoofwwwf"

    Returns: "INVALID"

  20. "ooffwffflfwlwwol"

    Returns: "INVALID"

  21. "wofowlwlolllfolof"

    Returns: "INVALID"

  22. "llfoowfoofffooolof"

    Returns: "INVALID"

  23. "wlwwwflwfoolwwwwwol"

    Returns: "INVALID"

  24. "wlwofwfwlfffowollofo"

    Returns: "INVALID"

  25. "ofowfffwllooooflowfwl"

    Returns: "INVALID"

  26. "owwoolwowfwlflllwwlwol"

    Returns: "INVALID"

  27. "wlowloffowoowwofwlwwlol"

    Returns: "INVALID"

  28. "wolwllloloolfowoffolwlfo"

    Returns: "INVALID"

  29. "lflwfoolowoofwwffooffflwo"

    Returns: "INVALID"

  30. "wowflwfofloolwoolwwflflflo"

    Returns: "INVALID"

  31. "olwllfofofowwfofofofwwoffof"

    Returns: "INVALID"

  32. "llfollfloowllwfllolfoloflflo"

    Returns: "INVALID"

  33. "owloowllowfofwowowfllfflfoool"

    Returns: "INVALID"

  34. "owfwllwfwloolwfwlwofwowoowwffl"

    Returns: "INVALID"

  35. "owoofffwoloffwooflolwlwwfofoflo"

    Returns: "INVALID"

  36. "oowlooolwwfwwfwfowloolwllowoffwl"

    Returns: "INVALID"

  37. "owlwlfollfwwfoffololwfoowlwloflof"

    Returns: "INVALID"

  38. "ofolowlwwoowfowlfwowwwowoofoolwlff"

    Returns: "INVALID"

  39. "lowwffllwlofllwwwfwowofoowlolfloowo"

    Returns: "INVALID"

  40. "wfollwlwoolwlolwowloowlflfwfwofflfow"

    Returns: "INVALID"

  41. "olfowwwflofowlwwofofwwoowowlfwllfwflf"

    Returns: "INVALID"

  42. "oowfflloowwolwwwlfwofoolwwwwwwfwfffowo"

    Returns: "INVALID"

  43. "wolfwlfwllfoofofllfwffwfowwfowflfflolll"

    Returns: "INVALID"

  44. "wolffwlfllfflwlowwwlwoffflowflfwfowwoooo"

    Returns: "INVALID"

  45. "loofwwwfooolffwlwoowwwwwfoofwowwollffowoo"

    Returns: "INVALID"

  46. "oofoolllowwlfllofwofwfololllflflfoollwwflo"

    Returns: "INVALID"

  47. "loooofwfflwwflolloolofwfoowlwolfwfowwllwooo"

    Returns: "INVALID"

  48. "wlolfwfffflffwfowfowlfwwwolowolfolwolffofwfo"

    Returns: "INVALID"

  49. "wlwoloolooffowwwlwwowlwoflflwwlwlflfoowlfowow"

    Returns: "INVALID"

  50. "offwllfllffwlwlffwowfwwlolooofolofwoolwwlfoooo"

    Returns: "INVALID"

  51. "wfolwwlwolwfffwofoffowlolflfoffoofolfwfwolflwwl"

    Returns: "INVALID"

  52. "woffffllfowwlfwffloffooolfoflfflfflwfoflfffowlfl"

    Returns: "INVALID"

  53. "folfffolwlllowwlllloloowlllfwooowlwwwfwlllllooolo"

    Returns: "INVALID"

  54. "fofflwllwooowowwwllllwlwllwwlwwfwwfwofwwfolowlolwo"

    Returns: "INVALID"

  55. "wwwwwwwwwwwwoooooooooooollllllllllllffffffffffff"

    Returns: "VALID"

  56. "wwwwoooollllffffwwwwwwwooooooolllllllfffffff"

    Returns: "VALID"

  57. "wwwwwwwwwwoooooooooollllllllllffffffffff"

    Returns: "VALID"

  58. "wwwwoooollllffffwwwwwwwwoooooooollllllllffffffff"

    Returns: "VALID"

  59. "wwwooolllfffwwwwoooollllffffwwwwoooollllffff"

    Returns: "VALID"

  60. "wwwwwwwwwooooooooolllllllllfffffffff"

    Returns: "VALID"

  61. "wwoollffwwoollffwwoollffwwwwwooooolllllfffff"

    Returns: "VALID"

  62. "wwwwwwwwwooooooooolllllllllfffffffff"

    Returns: "VALID"

  63. "wwwwwwwwwwoooooooooollllllllllffffffffff"

    Returns: "VALID"

  64. "wwoollffwwwwoooollllffffwolf"

    Returns: "VALID"

  65. "wwwwwooooolllllfffff"

    Returns: "VALID"

  66. "wwwwwwwwwooooooooolllllllllfffffffffwolf"

    Returns: "VALID"

  67. "wwwwoooollllffff"

    Returns: "VALID"

  68. "wwwwwwwwoooooooollllllllffffffff"

    Returns: "VALID"

  69. "wwwwwooooolllllfffffwolfwwwwwwoooooollllllffffff"

    Returns: "VALID"

  70. "wwwwwwwooooooolllllllfffffff"

    Returns: "VALID"

  71. "wwwwwooooolllllfffffwwoollff"

    Returns: "VALID"

  72. "wwwwwwoooooollllllffffffwwwooolllfff"

    Returns: "VALID"

  73. "wwwwoooollllffffwwwwwwoooooollllllffffff"

    Returns: "VALID"

  74. "wwwwwwwwwwoooooooooollllllllllffffffffff"

    Returns: "VALID"

  75. "wwwwwooooolllllfffffwwwooolllfffwwoollff"

    Returns: "VALID"

  76. "wwwwwwoooooollllllffffffwolfwwwwwooooolllllfffff"

    Returns: "VALID"

  77. "wwwwwwoooooollllllffffffwwwwoooollllffff"

    Returns: "VALID"

  78. "wwwwoooollllffffwwwooolllfffwwwwwooooolllllfffff"

    Returns: "VALID"

  79. "wwwwwwwwwwoooooooooollllllllllffffffffffwwoollff"

    Returns: "VALID"

  80. "wwoollffwwwwwwwwoooooooollllllllffffffff"

    Returns: "VALID"

  81. "wolfwwwwwwwwoooooooollllllllffffffffwwoollff"

    Returns: "VALID"

  82. "wwwwwwoooooollllllffffffwwwooolllfff"

    Returns: "VALID"

  83. "wwwooolllfffwwwwwwoooooollllllffffffwwoollff"

    Returns: "VALID"

  84. "wwwwwwwwwooooooooolllllllllfffffffff"

    Returns: "VALID"

  85. "wwwwwooooolllllfffffwwwwwwwooooooolllllllfffffff"

    Returns: "VALID"

  86. "wwoollffwwwwwwwwwwoooooooooollllllllllffffffffff"

    Returns: "VALID"

  87. "wwwooolllfff"

    Returns: "VALID"

  88. "wwwwwwwooooooolllllllfffffffwwwooolllfff"

    Returns: "VALID"

  89. "wwoollffwwwwwwwwwooooooooolllllllllfffffffff"

    Returns: "VALID"

  90. "wwwwwwwooooooolllllllfffffff"

    Returns: "VALID"

  91. "wolfwwoollffwwwwoooollllffffwwwwwooooolllllfffff"

    Returns: "VALID"

  92. "wwwooolllfffwwoollff"

    Returns: "VALID"

  93. "wwwwwwwwoooooooollllllllffffffff"

    Returns: "VALID"

  94. "wwwooolllfffwwwwwwwwwooooooooolllllllllfffffffff"

    Returns: "VALID"

  95. "wwwwwooooolllllfffff"

    Returns: "VALID"

  96. "wwwooolllfffwwwooolllfff"

    Returns: "VALID"

  97. "wwwwwooooolllllfffffwwwwwwwooooooolllllllfffffff"

    Returns: "VALID"

  98. "wwwwwwwwwooooooooolllllllllfffffffffwolf"

    Returns: "VALID"

  99. "wwoollffwwwwoooollllffff"

    Returns: "VALID"

  100. "wwwwwooooolllllfffffwwwooolllfff"

    Returns: "VALID"

  101. "wwwooolllfffwwwwwwoooooollllllffffffwwoollff"

    Returns: "VALID"

  102. "wwwwwooooolllllfffffwwoollff"

    Returns: "VALID"

  103. "wwwwwwwwoooooooollllllllffffffff"

    Returns: "VALID"

  104. "wwoollffwwoollff"

    Returns: "VALID"

  105. "wwoollffwwwwwwoooooollllllffffffwwwooolllfff"

    Returns: "VALID"

  106. "wwwooolllff"

    Returns: "INVALID"

  107. "wwoollfff"

    Returns: "INVALID"

  108. "ffwwooll"

    Returns: "INVALID"

  109. "wolfwolf"

    Returns: "VALID"

  110. "wolfwolfwwoollffwolfwwwooolllff"

    Returns: "INVALID"

  111. "wofl"

    Returns: "INVALID"

  112. "wolfwol"

    Returns: "INVALID"

  113. "wol"

    Returns: "INVALID"

  114. "wwooollllllfff"

    Returns: "INVALID"

  115. "w"

    Returns: "INVALID"

  116. "wlof"

    Returns: "INVALID"

  117. "wolfwwwwww"

    Returns: "INVALID"

  118. "wolff"

    Returns: "INVALID"

  119. "llll"

    Returns: "INVALID"

  120. "wwolf"

    Returns: "INVALID"

  121. "wlofwlof"

    Returns: "INVALID"

  122. "wo"

    Returns: "INVALID"

  123. "woowllff"

    Returns: "INVALID"

  124. "wwoollff"

    Returns: "VALID"

  125. "wwwwwwwww"

    Returns: "INVALID"

  126. "fwolf"

    Returns: "INVALID"

  127. "flwo"

    Returns: "INVALID"

  128. "ooo"

    Returns: "INVALID"

  129. "flow"

    Returns: "INVALID"

  130. "wwwww"

    Returns: "INVALID"

  131. "wwolfwoolfwollfwolff"

    Returns: "INVALID"

  132. "wwwwoooollllf"

    Returns: "INVALID"

  133. "wwww"

    Returns: "INVALID"

  134. "fwol"

    Returns: "INVALID"

  135. "wwwwwooooolllllfffffwwwolfwwooooooolllllllfffffff"

    Returns: "INVALID"

  136. "wwolfwoollff"

    Returns: "INVALID"

  137. "wolfwoolfwwollff"

    Returns: "INVALID"

  138. "wowollff"

    Returns: "INVALID"

  139. "wolfwo"

    Returns: "INVALID"

  140. "olfw"

    Returns: "INVALID"

  141. "wwwwwwww"

    Returns: "INVALID"

  142. "wollfwwoolff"

    Returns: "INVALID"

  143. "woolf"

    Returns: "INVALID"

  144. "wfol"

    Returns: "INVALID"

  145. "wolfw"

    Returns: "INVALID"

  146. "llffwwoo"

    Returns: "INVALID"

  147. "oolf"

    Returns: "INVALID"

  148. "wwwolllllllf"

    Returns: "INVALID"

  149. "wwoollf"

    Returns: "INVALID"

  150. "wwwwooollff"

    Returns: "INVALID"

  151. "wwwwwolf"

    Returns: "INVALID"

  152. "wwfollof"

    Returns: "INVALID"

  153. "wwwoollllffffff"

    Returns: "INVALID"

  154. "ww"

    Returns: "INVALID"

  155. "wolfwolfwwolf"

    Returns: "INVALID"

  156. "wwwwww"

    Returns: "INVALID"

  157. "wwwolfoollff"

    Returns: "INVALID"

  158. "wwllooff"

    Returns: "INVALID"

  159. "olfwolf"

    Returns: "INVALID"

  160. "wolfl"

    Returns: "INVALID"

  161. "wolfwwoo"

    Returns: "INVALID"

  162. "wolw"

    Returns: "INVALID"

  163. "wwowoolllfff"

    Returns: "INVALID"

  164. "www"

    Returns: "INVALID"

  165. "wolllfff"

    Returns: "INVALID"

  166. "wolfwwwwoooollllff"

    Returns: "INVALID"

  167. "wwwoollffwoollff"

    Returns: "INVALID"

  168. "woolllfff"

    Returns: "INVALID"

  169. "wlfo"

    Returns: "INVALID"

  170. "wolffwol"

    Returns: "INVALID"

  171. "wolwolff"

    Returns: "INVALID"

  172. "wwooollffwwollff"

    Returns: "INVALID"

  173. "wolfwwoollffwwwooolllfffwwwwoooollllfff"

    Returns: "INVALID"

  174. "woollf"

    Returns: "INVALID"

  175. "oooo"

    Returns: "INVALID"


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: