Problem Statement

- The net is not allowed to pass through any of the fish.
- The net is not allowed to touch or intersect itself.
- The net may only cross the x axis at points that contain the buoys. The net is not allowed to touch the x axis without crossing it.
- The net must cross the x axis at least twice.
- The fish Mr. Jeipouju wants to capture and the fish he wants not to capture must be separated by the net. That is, either all fish marked with 'X' are to be inside the net and all fish marked with 'O' outside, or vice versa. The fish marked '*' may be anywhere, possibly some of them inside and some outside the net.

- Start anywhere on the net, but not on a buoy.
- Walk along the net until you reach your starting point again.
- During the walk, each time you encounter a buoy, write down its number and the halfplane in which you are moving away from the x axis. (The halfplane is "+" if after visiting the buoy your y coordinate is positive and "-" if it is negative.)
Definition
- Class:
- CaptureFish
- Method:
- getParity
- Parameters:
- String
- Returns:
- int
- Method signature:
- int getParity(String fish)
- (be sure your method is public)
Constraints
- fish will contain between 1 and 50 characters, inclusive.
- Each character of fish will be either letter 'O' or 'X' or '*'.
- fish will contain at least one 'O' character.
Examples
"OXOXO"
Returns: 0
In this case, there are 5 fish. There are 8 ways to separate them.
"OO"
Returns: 1
There is only one valid net and it looks as follows: Two things to notice: First, the net does not have to pass through all the buoys. Second, it is allowed to have no fish at all at either side of the net.
"**OX**"
Returns: 0
"O***O***O***O"
Returns: 1
"O*X**X***X*O"
Returns: 0
"O"
Returns: 1
"OX"
Returns: 0
"XO"
Returns: 0
"*O"
Returns: 1
"O*"
Returns: 1
"O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O"
Returns: 1
"X*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*X"
Returns: 0
"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"
Returns: 1
"OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
Returns: 0
"***********************************************O**"
Returns: 1
"*************O************************************"
Returns: 1
"O************************************************O"
Returns: 1
"O***********************X************************O"
Returns: 0
"O**********************X************************O"
Returns: 1
"O*********************X************************O"
Returns: 0
"XOOXOXXOOO"
Returns: 0
"XOXXXXOXXOXXOXX"
Returns: 0
"OXOXXOOXXXXXXOXXOOXX"
Returns: 0
"OOOXXOXOOOOXOXOXXXOOOXOOO"
Returns: 0
"OOOXXXXOOXXXOOOXOXOXOOXXOOXXOO"
Returns: 0
"XOOXXXXOXXXXOXXXOXOXOOXOOOOOXXXOOOX"
Returns: 0
"***OXX*X*"
Returns: 0
"XO*OOO*XO*O*XXXX*"
Returns: 0
"XX*X*OXXXXXO*XOXOXXXOOX*X"
Returns: 0
"*O*XX*XO**XXXXXOXXOX*X********OOX"
Returns: 0
"*OXXO**X**OX*X*O**X*XXOX*X*XX**X*XX*XO**X"
Returns: 0
"XX**OOXX**OO*O*XXO*XOXXXXOXXO*X*XXX*OX**X*XXXX*OX"
Returns: 0
"*X*OXX*O*O"
Returns: 0
"**O*OX***OXXO**O*X"
Returns: 0
"*XOXX*X****XX*O***XO***OOX"
Returns: 0
"*XOOOXOO***O**XOX*X*OOO**OOO***O**"
Returns: 0
"*OO*O**O**X***OXOOOO*O***OX*OOX**O*X*XOO*O"
Returns: 0
"O***OOOXX**XOXOOO***OX****OXOX*OXO*XXOO***XOO*XO*O"
Returns: 0
"****XXO**X********O**OO**X****"
Returns: 0
"O*X***X*O***************X*****X*O"
Returns: 0
"O***O**X*****OX**OXO****O*********X*"
Returns: 0
"*********X**X********O*****X******O**X*"
Returns: 0
"**OO**XX******O**********O****X**OX***X*XX"
Returns: 0
"*X***********X**OX*X**O******O*O********X****"
Returns: 0
"******O***"
Returns: 1
"**O****O*O**O**OOO"
Returns: 1
"O*O**O**O*****O*OOO*****O*"
Returns: 1
"**O*****O*O**O*O*OO****O*OO******O"
Returns: 1
"**O**O******O*OO*OOOO***O*O*OO****O***OOO*"
Returns: 0
"OO**OO*OOOOOOOOOO*OOO*O**OOO****OOO*O*OOO*OO***OO*"
Returns: 1
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXOOOOOXXXXXXXXXXXXXXX"
Returns: 1
"XXXXXXXXXXXXXXXXXXXXXOOOOOOOOOOOOOOOOOOOOOOOOOOXXX"
Returns: 1
"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXXXXXXXXXX"
Returns: 0
"OOOOOOOOOOOOOXXXXXXXXXXXXXXXXOOOOOOOOOOOOOOOOOOOOO"
Returns: 1
"OOOOOOOOOOOOOOOOOOOOXXXXXXXXXXXXXXXXXXXXXXXXXXXXOO"
Returns: 1
"XXXXXXXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXXX"
Returns: 1
"*O*O*OOO**OO**O*******X**X*XOO*O***OOOO*******OO*O"
Returns: 0
"XXXXX*XX*XX***XX*X*X*XXX*XXOOOOO*XXX*XXXXX*XX*XXX"
Returns: 0
"O**O**OOOOO*O*XXXXXXXX*XXXX**XXXXX**XXXXXXXXOOO*"
Returns: 0
"XX*XXXXXXXX*XXXXOOOOOXX**XXXXX*XXXXXXX*X***XXX*"
Returns: 1
"*OOXXXXXXX*XXX*XXXX*XXX*X***X*X***O*OOO*OOOO*O"
Returns: 0
"*OO*O*XX*XX**XXX**XX*XX**XOOO*OO*O*OOOOO**O*O"
Returns: 0
"*X**XX**X*X*******O*OO**OO**********X*************"
Returns: 0
"*XX**XX**XX*XX****OOO*****O***O********X**********"
Returns: 1
"*******O****O*****XX******X***X*X*X***OOO****OOO**"
Returns: 0
"OO***O***O*******X****X*******X*X*********O****O**"
Returns: 0
"***********O******X***X*****X***X**XOO*O****O*O*O*"
Returns: 1
"**O***OO****OOO************XX**X*X**O*****OO******"
Returns: 1
"O*O***O**O**O*OO****OOO*O**O**O*O*****X*XXX*XX****"
Returns: 0
"**O***O*O*****OO******O*O***OOO*OO**X**X****XXXX**"
Returns: 0
"***OOO***O*****OO*OOO*OO**OOO*OOO**X*X*****X***X**"
Returns: 1
"O*O******OO******OOOOO*****OO**********XX**X**X***"
Returns: 1
"***XX**XX*X**XXXXXXX*XX*XX*XXXX*XXOO**O*****O*OOO*"
Returns: 0
"X*********XXXX*XX**XX****X***XX*X*OOO****OOO*O***O"
Returns: 0
"OXOXOXOOO"
Returns: 0
"OX*"
Returns: 1
"*O*O**"
Returns: 1
"XOX"
Returns: 1
"OOOX*"
Returns: 1
"OOOOOOO"
Returns: 1
"OXO"
Returns: 1
"*OX"
Returns: 1
"X*OX"
Returns: 0
"OXXO"
Returns: 1
"XOOX"
Returns: 1
"O*O"
Returns: 0