Problem Statement
______
/ A /|
/_____/ |
| |C|
| B | /
|_____|/
For the above roll, we should record "ABC"
We want to check the data for consistency -- we know that the data recording process is error-prone. Create a class AlphaDice that contains a method badData that is given a String[] roll giving the recorded data, and that returns the (0-based) index of the first entry in roll that, when combined with its predecessors, is inconsistent.
If all the roll data are consistent with some distinct labeling of the die, return -1.
Definition
- Class:
- AlphaDice
- Method:
- badData
- Parameters:
- String[]
- Returns:
- int
- Method signature:
- int badData(String[] roll)
- (be sure your method is public)
Constraints
- roll will contain between 1 and 50 elements inclusive
- each element of roll will have length 3 and will contain only 'A'-'Z'
Examples
{"ABC","ZCB"}Returns: -1
This is the example above where there is a Z on the bottom. On the second roll the die was oriented so the Z was on the top, the C at the front, and the B on our right. These data are consistent with a distinctly labeled die.{"ABC","DEF","BCA","GHI","ABC"}Returns: 3
The first 3 were consistent with a die with 6 distinct labels, but the "GHI" must be bad data since we could not possibly observe more than 6 different labels.{"ABA","CDE","CDE","CDE","CDE"}Returns: 0
The first observation shows two sides labeled with 'A'{"ABC","DEF","BCF"}Returns: 2