Problem Statement
Goose Tattarrattat has a machine that contains N gears (cogwheels). The gears are numbered 0 through N-1. Currently, the gears are arranged into a cycle: for each i, gear i meshes with gears i-1 and i+1 (counting modulo N). In particular, gear 0 meshes with gear N-1.
Let X and Y be two meshing gears. Note that if X is turning, Y must clearly be turning in the opposite direction (clockwise vs. counter-clockwise).
For each of the N gears we have a desired direction of turning.
You are given this information encoded as a
Of course, it may be impossible to satisfy all the desired directions of turning. Return the minimal number of gears that have to be removed from the machine so that all remaining gears can turn in the desired directions at the same time.
Definition
- Class:
- GearsDiv2
- Method:
- getmin
- Parameters:
- String
- Returns:
- int
- Method signature:
- int getmin(String Directions)
- (be sure your method is public)
Notes
- Removing a gear creates a gap between the other gears. For example, after removing the gear 7, gears 6 and 8 will not mesh.
Constraints
- Directions will contain between 3 and 50 characters, inclusive.
- Each character of Directions will be 'R' or 'L'.
Examples
"LRRR"
Returns: 1
Once we remove gear 2, the other three are free to turn in the desired directions.
"RRR"
Returns: 2
Gear 0 meshes with gear 2.
"LRLR"
Returns: 0
"LRLLRRLLLRRRLLLL"
Returns: 6
"LRLLRLRLRLLLRLRRLLLLLLLLLLRLRLRLRRRRRLRRLRLRL"
Returns: 12
"RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR"
Returns: 25
"RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR"
Returns: 25
"LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL"
Returns: 24
"LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL"
Returns: 24
"LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR"
Returns: 0
"RLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR"
Returns: 1
"RLL"
Returns: 1
"LRRR"
Returns: 1
"LLLRR"
Returns: 2
"RRLLRR"
Returns: 3
"LLRLRRR"
Returns: 2
"LRRRLLRL"
Returns: 3
"LRLRRRLRL"
Returns: 2
"LRRLRLLLRL"
Returns: 3
"RRRRLLLRLLR"
Returns: 4
"RRLLRRRLRLLL"
Returns: 4
"LRRRLRLLLRLRL"
Returns: 3
"LLRLRLRRRLLRRL"
Returns: 4
"RLLLLLRRRLLLRRR"
Returns: 6
"LLLRLRRRRLRRRRLR"
Returns: 5
"RRRRLLLRRLLLRLLRR"
Returns: 7
"RLRLRRLLRRLRRRRLRR"
Returns: 6
"LRRLLRLLRLRLRLRLRRR"
Returns: 4
"RRLLLRRLRRLLLLRRLLRR"
Returns: 9
"LRLLLRRRRLRLLLRRRLLLL"
Returns: 7
"LLRLRLLRRLRRRLLRLRRRRR"
Returns: 7
"RLRLRLLLLLLLRRLLRLLLLRR"
Returns: 8
"LRLLRLRLRRLRRRLRRRLLRRRL"
Returns: 7
"LLRLLRRLLLRRLLRLLLLLRLRLR"
Returns: 8
"LLLLRRRRRRLRRLRRRRRLLLRRRL"
Returns: 10
"LLRLLRRRRRLRRRRLRRLLRRLRRLR"
Returns: 10
"LLLLRRRLLRLLRLLLRRLLRRRLRRLL"
Returns: 11
"RLLLLLRLRLRLLLLRRRLLLRRRLRRRR"
Returns: 9
"LLRRRLLLLRRRRRRRLLLLLRLRLLRLRL"
Returns: 10
"RLRRRRLLRLLRRLRRLRRRRLRLRRLLRLL"
Returns: 11
"RRRRLRLRRRLLLLLLRRRLLLRRLRLRLLLR"
Returns: 10
"LLRRRLLLRLLLLRRLLRLLLRLRLLRRLLLLR"
Returns: 12
"LRLLRLRRRLLLRRLRLLRLRRRRRRLLRRLLRL"
Returns: 12
"RLRLRRLRLLRLLRLRRLLRLRRLLRRRLRRRLLR"
Returns: 11
"RRLLLRLLLRRLRLRRRLRLRLRRRRRRLRLRLRLL"
Returns: 9
"LRLRLLRLRRLRLLLRLLLRLRLRRLRLRLLRRLRRR"
Returns: 8
"LLRLLLRRLRLRRLLLLLLRLLLRRLLRLLRRLLLLRL"
Returns: 14
"RLLLRRLRRLRLRLLLRRRLRLLLRRLRLLRLRLLRRRR"
Returns: 11
"LRRLLLRRRLLRLLRLRLLRRLLRLLLLRRRLRRLRRLRL"
Returns: 14
"LRLRRRLRRRRRRRRLLRRLLLLRLRLRRRRRRLRRLLRLR"
Returns: 14
"LRRRLLLLLLLRLRLRLLRLLRRLRRLRLRLRRRLRLLRLRL"
Returns: 11
"LLRLLLLRRRRRLLLRLRLLLRLLRLLRRLLLRLRRRLRRLRL"
Returns: 13
"RRRLLRRLRLRRRRLRRRRLLLRRLRRRRRLRLLRLRLLRLRRL"
Returns: 14
"RRLLRRLRRLRRLRRLLLLLLRLRRRRLLLLRLLRLRLLRLLRRR"
Returns: 17
"LRRRRRRLLRLRRRRLRRLLLLRRLLLRRLRRLLLRLLRLLRLLRR"
Returns: 18
"RLRLLRLRRRLRLLLRRRRLLLLLRLRLRLRRLRRLLLRLRLRRLLL"
Returns: 12
"LRLLRRRRLLRRRLLLLRRRRLRRLLRLLLLRLLRRLLLRLLRRRLLR"
Returns: 19
"RRRRLLLRLLRLLRRLRRRLLLLRRLRLRLRLRLLLRLRLRRLLRLLLL"
Returns: 15
"LLRLLRRLRRLRRLLLRRLRRLLRRRRLLLLLLLRRLLLRLRRLRRLRRR"
Returns: 19
"RRRRRRRLRRRRRRRLRLRLLRLRLRLRRLRLRLLLRLRLLRLLRRLRRR"
Returns: 14
"LRRLLLRRLRRLLRRLRLLRRLLLRLRRRRLRLLLLRLRLRLLRLLLLRR"
Returns: 17
"LLRL"
Returns: 1
"RRLLRRLRLRRLLLRLLLRLRLLLRLRLLRLRLLRLLRLLRLRLRLLR"
Returns: 12
"LLRLRLRLLRRRLLRLRLRRLRLRLRLRRLRLLRLRRLRLRLRLLRLRRL"
Returns: 10
"LLLLLLLLLLLLLLLRLRRRRLLLLLLLLLLLLLLLLLRLRLL"
Returns: 18
"RRLRLR"
Returns: 1
"RRLRLRLRLLRLRLRLRRLRLRLLLRLRLLRLLRRLRRRLLRRLLLR"
Returns: 11
"RRLLLRLR"
Returns: 2
"RRLR"
Returns: 1
"RLRLLRLLLRRRLRLRLRRRLRLRLRLLRLRLLLLLRRLRLLLLRLLLLR"
Returns: 13
"LLLLLLL"
Returns: 4
"LLRLLRRLLLRRRLLL"
Returns: 6
"LRLRLRRLLRLRLLLRLRL"
Returns: 4
"LLRLRLRRRLLRLRLRRRLRLRLRLRRLRRRLRRRRLLLLRRLRLRLLL"
Returns: 12
"LRLRL"
Returns: 1
"LLRLLRL"
Returns: 2
"RRRRRRRLRRRRRRRLRLRLLRLRLRLRRLRRRRRRRRRRRRRR"
Returns: 15
"RRRRRRLRRLRRR"
Returns: 5
"RLLRR"
Returns: 2
"LRLRLRRLLRLRLLLRLRLLLLLLLLLLLLLLLLLLLLLLRRLRLLLRL"
Returns: 17
"LLRLRL"
Returns: 1
"RRLRRR"
Returns: 2
"LLRRRL"
Returns: 2
"LRLL"
Returns: 1
"RRRRRRRRRRRRRRRRRRRRRR"
Returns: 11
"LRLRLRLLRLRRRL"
Returns: 3
"LLLLRRRRL"
Returns: 4
"LRRL"
Returns: 2
"RRRR"
Returns: 2
"RRRRLR"
Returns: 2
"LLRRL"
Returns: 2
"RRRRLLR"
Returns: 3
"LLLLRL"
Returns: 2
"LLRRLRRLLLLRRRRL"
Returns: 7
"LLR"
Returns: 1
"LRR"
Returns: 1
"LLRLRRLLLRL"
Returns: 3
"RRRRRRRLRRRRRRRLRLRLLRLRLRLRRLRLRLLLRLRLLLLLLLLRRR"
Returns: 15
"LLLLLLLLLLLLLLLRRRRRRRRRRRRRRRRRR"
Returns: 16
"RRLLR"
Returns: 2
"LRRRRRRL"
Returns: 4
"RLR"
Returns: 1
"LRL"
Returns: 1
"RRRLRR"
Returns: 2
"LRLRR"
Returns: 1
"RLRRRL"
Returns: 1
"LLLLLLLLLLLLLLLLLLLRRRRRRRRRRRRLLLLLLLLLLRR"
Returns: 21
"LRLRLRLRL"
Returns: 1