Problem Statement
- 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.
- The concatenation of two valid words is a valid word.
- Only the words that can be obtained by rules 1 and 2 are valid. There are no other valid words.
- 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).
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
"wolf"
Returns: "VALID"
The first valid word from the examples in the problem statement.
"wwolfolf"
Returns: "INVALID"
The second invalid word from the examples in the problem statement.
"wolfwwoollffwwwooolllfffwwwwoooollllffff"
Returns: "VALID"
"flowolf"
Returns: "INVALID"
"o"
Returns: "INVALID"
"fo"
Returns: "INVALID"
"lfw"
Returns: "INVALID"
"llwl"
Returns: "INVALID"
"ofwff"
Returns: "INVALID"
"fwwloo"
Returns: "INVALID"
"llwolow"
Returns: "INVALID"
"flffwwff"
Returns: "INVALID"
"lllfoffff"
Returns: "INVALID"
"ffwffwwoow"
Returns: "INVALID"
"wflolwfolwo"
Returns: "INVALID"
"wlwwlfolflow"
Returns: "INVALID"
"ofwwoooffwlll"
Returns: "INVALID"
"wwfwfllwowolfl"
Returns: "INVALID"
"ollooolwoofwwwf"
Returns: "INVALID"
"ooffwffflfwlwwol"
Returns: "INVALID"
"wofowlwlolllfolof"
Returns: "INVALID"
"llfoowfoofffooolof"
Returns: "INVALID"
"wlwwwflwfoolwwwwwol"
Returns: "INVALID"
"wlwofwfwlfffowollofo"
Returns: "INVALID"
"ofowfffwllooooflowfwl"
Returns: "INVALID"
"owwoolwowfwlflllwwlwol"
Returns: "INVALID"
"wlowloffowoowwofwlwwlol"
Returns: "INVALID"
"wolwllloloolfowoffolwlfo"
Returns: "INVALID"
"lflwfoolowoofwwffooffflwo"
Returns: "INVALID"
"wowflwfofloolwoolwwflflflo"
Returns: "INVALID"
"olwllfofofowwfofofofwwoffof"
Returns: "INVALID"
"llfollfloowllwfllolfoloflflo"
Returns: "INVALID"
"owloowllowfofwowowfllfflfoool"
Returns: "INVALID"
"owfwllwfwloolwfwlwofwowoowwffl"
Returns: "INVALID"
"owoofffwoloffwooflolwlwwfofoflo"
Returns: "INVALID"
"oowlooolwwfwwfwfowloolwllowoffwl"
Returns: "INVALID"
"owlwlfollfwwfoffololwfoowlwloflof"
Returns: "INVALID"
"ofolowlwwoowfowlfwowwwowoofoolwlff"
Returns: "INVALID"
"lowwffllwlofllwwwfwowofoowlolfloowo"
Returns: "INVALID"
"wfollwlwoolwlolwowloowlflfwfwofflfow"
Returns: "INVALID"
"olfowwwflofowlwwofofwwoowowlfwllfwflf"
Returns: "INVALID"
"oowfflloowwolwwwlfwofoolwwwwwwfwfffowo"
Returns: "INVALID"
"wolfwlfwllfoofofllfwffwfowwfowflfflolll"
Returns: "INVALID"
"wolffwlfllfflwlowwwlwoffflowflfwfowwoooo"
Returns: "INVALID"
"loofwwwfooolffwlwoowwwwwfoofwowwollffowoo"
Returns: "INVALID"
"oofoolllowwlfllofwofwfololllflflfoollwwflo"
Returns: "INVALID"
"loooofwfflwwflolloolofwfoowlwolfwfowwllwooo"
Returns: "INVALID"
"wlolfwfffflffwfowfowlfwwwolowolfolwolffofwfo"
Returns: "INVALID"
"wlwoloolooffowwwlwwowlwoflflwwlwlflfoowlfowow"
Returns: "INVALID"
"offwllfllffwlwlffwowfwwlolooofolofwoolwwlfoooo"
Returns: "INVALID"
"wfolwwlwolwfffwofoffowlolflfoffoofolfwfwolflwwl"
Returns: "INVALID"
"woffffllfowwlfwffloffooolfoflfflfflwfoflfffowlfl"
Returns: "INVALID"
"folfffolwlllowwlllloloowlllfwooowlwwwfwlllllooolo"
Returns: "INVALID"
"fofflwllwooowowwwllllwlwllwwlwwfwwfwofwwfolowlolwo"
Returns: "INVALID"
"wwwwwwwwwwwwoooooooooooollllllllllllffffffffffff"
Returns: "VALID"
"wwwwoooollllffffwwwwwwwooooooolllllllfffffff"
Returns: "VALID"
"wwwwwwwwwwoooooooooollllllllllffffffffff"
Returns: "VALID"
"wwwwoooollllffffwwwwwwwwoooooooollllllllffffffff"
Returns: "VALID"
"wwwooolllfffwwwwoooollllffffwwwwoooollllffff"
Returns: "VALID"
"wwwwwwwwwooooooooolllllllllfffffffff"
Returns: "VALID"
"wwoollffwwoollffwwoollffwwwwwooooolllllfffff"
Returns: "VALID"
"wwwwwwwwwooooooooolllllllllfffffffff"
Returns: "VALID"
"wwwwwwwwwwoooooooooollllllllllffffffffff"
Returns: "VALID"
"wwoollffwwwwoooollllffffwolf"
Returns: "VALID"
"wwwwwooooolllllfffff"
Returns: "VALID"
"wwwwwwwwwooooooooolllllllllfffffffffwolf"
Returns: "VALID"
"wwwwoooollllffff"
Returns: "VALID"
"wwwwwwwwoooooooollllllllffffffff"
Returns: "VALID"
"wwwwwooooolllllfffffwolfwwwwwwoooooollllllffffff"
Returns: "VALID"
"wwwwwwwooooooolllllllfffffff"
Returns: "VALID"
"wwwwwooooolllllfffffwwoollff"
Returns: "VALID"
"wwwwwwoooooollllllffffffwwwooolllfff"
Returns: "VALID"
"wwwwoooollllffffwwwwwwoooooollllllffffff"
Returns: "VALID"
"wwwwwwwwwwoooooooooollllllllllffffffffff"
Returns: "VALID"
"wwwwwooooolllllfffffwwwooolllfffwwoollff"
Returns: "VALID"
"wwwwwwoooooollllllffffffwolfwwwwwooooolllllfffff"
Returns: "VALID"
"wwwwwwoooooollllllffffffwwwwoooollllffff"
Returns: "VALID"
"wwwwoooollllffffwwwooolllfffwwwwwooooolllllfffff"
Returns: "VALID"
"wwwwwwwwwwoooooooooollllllllllffffffffffwwoollff"
Returns: "VALID"
"wwoollffwwwwwwwwoooooooollllllllffffffff"
Returns: "VALID"
"wolfwwwwwwwwoooooooollllllllffffffffwwoollff"
Returns: "VALID"
"wwwwwwoooooollllllffffffwwwooolllfff"
Returns: "VALID"
"wwwooolllfffwwwwwwoooooollllllffffffwwoollff"
Returns: "VALID"
"wwwwwwwwwooooooooolllllllllfffffffff"
Returns: "VALID"
"wwwwwooooolllllfffffwwwwwwwooooooolllllllfffffff"
Returns: "VALID"
"wwoollffwwwwwwwwwwoooooooooollllllllllffffffffff"
Returns: "VALID"
"wwwooolllfff"
Returns: "VALID"
"wwwwwwwooooooolllllllfffffffwwwooolllfff"
Returns: "VALID"
"wwoollffwwwwwwwwwooooooooolllllllllfffffffff"
Returns: "VALID"
"wwwwwwwooooooolllllllfffffff"
Returns: "VALID"
"wolfwwoollffwwwwoooollllffffwwwwwooooolllllfffff"
Returns: "VALID"
"wwwooolllfffwwoollff"
Returns: "VALID"
"wwwwwwwwoooooooollllllllffffffff"
Returns: "VALID"
"wwwooolllfffwwwwwwwwwooooooooolllllllllfffffffff"
Returns: "VALID"
"wwwwwooooolllllfffff"
Returns: "VALID"
"wwwooolllfffwwwooolllfff"
Returns: "VALID"
"wwwwwooooolllllfffffwwwwwwwooooooolllllllfffffff"
Returns: "VALID"
"wwwwwwwwwooooooooolllllllllfffffffffwolf"
Returns: "VALID"
"wwoollffwwwwoooollllffff"
Returns: "VALID"
"wwwwwooooolllllfffffwwwooolllfff"
Returns: "VALID"
"wwwooolllfffwwwwwwoooooollllllffffffwwoollff"
Returns: "VALID"
"wwwwwooooolllllfffffwwoollff"
Returns: "VALID"
"wwwwwwwwoooooooollllllllffffffff"
Returns: "VALID"
"wwoollffwwoollff"
Returns: "VALID"
"wwoollffwwwwwwoooooollllllffffffwwwooolllfff"
Returns: "VALID"
"wwwooolllff"
Returns: "INVALID"
"wwoollfff"
Returns: "INVALID"
"ffwwooll"
Returns: "INVALID"
"wolfwolf"
Returns: "VALID"
"wolfwolfwwoollffwolfwwwooolllff"
Returns: "INVALID"
"wofl"
Returns: "INVALID"
"wolfwol"
Returns: "INVALID"
"wol"
Returns: "INVALID"
"wwooollllllfff"
Returns: "INVALID"
"w"
Returns: "INVALID"
"wlof"
Returns: "INVALID"
"wolfwwwwww"
Returns: "INVALID"
"wolff"
Returns: "INVALID"
"llll"
Returns: "INVALID"
"wwolf"
Returns: "INVALID"
"wlofwlof"
Returns: "INVALID"
"wo"
Returns: "INVALID"
"woowllff"
Returns: "INVALID"
"wwoollff"
Returns: "VALID"
"wwwwwwwww"
Returns: "INVALID"
"fwolf"
Returns: "INVALID"
"flwo"
Returns: "INVALID"
"ooo"
Returns: "INVALID"
"flow"
Returns: "INVALID"
"wwwww"
Returns: "INVALID"
"wwolfwoolfwollfwolff"
Returns: "INVALID"
"wwwwoooollllf"
Returns: "INVALID"
"wwww"
Returns: "INVALID"
"fwol"
Returns: "INVALID"
"wwwwwooooolllllfffffwwwolfwwooooooolllllllfffffff"
Returns: "INVALID"
"wwolfwoollff"
Returns: "INVALID"
"wolfwoolfwwollff"
Returns: "INVALID"
"wowollff"
Returns: "INVALID"
"wolfwo"
Returns: "INVALID"
"olfw"
Returns: "INVALID"
"wwwwwwww"
Returns: "INVALID"
"wollfwwoolff"
Returns: "INVALID"
"woolf"
Returns: "INVALID"
"wfol"
Returns: "INVALID"
"wolfw"
Returns: "INVALID"
"llffwwoo"
Returns: "INVALID"
"oolf"
Returns: "INVALID"
"wwwolllllllf"
Returns: "INVALID"
"wwoollf"
Returns: "INVALID"
"wwwwooollff"
Returns: "INVALID"
"wwwwwolf"
Returns: "INVALID"
"wwfollof"
Returns: "INVALID"
"wwwoollllffffff"
Returns: "INVALID"
"ww"
Returns: "INVALID"
"wolfwolfwwolf"
Returns: "INVALID"
"wwwwww"
Returns: "INVALID"
"wwwolfoollff"
Returns: "INVALID"
"wwllooff"
Returns: "INVALID"
"olfwolf"
Returns: "INVALID"
"wolfl"
Returns: "INVALID"
"wolfwwoo"
Returns: "INVALID"
"wolw"
Returns: "INVALID"
"wwowoolllfff"
Returns: "INVALID"
"www"
Returns: "INVALID"
"wolllfff"
Returns: "INVALID"
"wolfwwwwoooollllff"
Returns: "INVALID"
"wwwoollffwoollff"
Returns: "INVALID"
"woolllfff"
Returns: "INVALID"
"wlfo"
Returns: "INVALID"
"wolffwol"
Returns: "INVALID"
"wolwolff"
Returns: "INVALID"
"wwooollffwwollff"
Returns: "INVALID"
"wolfwwoollffwwwooolllfffwwwwoooollllfff"
Returns: "INVALID"
"woollf"
Returns: "INVALID"
"oooo"
Returns: "INVALID"