Problem Statement
Unfortunately, Feudalia is world famous for the ineptitude of its public officials. Some coffee was spilled all over the program before it could be installed to the robot. Therefore, some of the commands may now be illegible. Your task is to repair the program by replacing each illegible command with an L or an R. If there are multiple ways to repair the program, you have to pick one that maximizes its reach.
You are given a
Definition
- Class:
- LeftOrRight
- Method:
- maxDistance
- Parameters:
- String
- Returns:
- int
- Method signature:
- int maxDistance(String program)
- (be sure your method is public)
Constraints
- program will contain between 1 and 50 characters, inclusive.
- Each character of program will be 'L', 'R' or '?' (quotes for clarity).
Examples
"LLLRLRRR"
Returns: 3
All commands are legible. The reach of this program is 3: both after three steps and after five steps we are 3 units to the left of the starting location.
"R???L"
Returns: 4
We can replace all of the question marks with a right command.
"??????"
Returns: 6
"LL???RRRRRRR???"
Returns: 11
"L?L?"
Returns: 4
"?"
Returns: 1
"L"
Returns: 1
"R"
Returns: 1
"??????????????????????????????????????????????????"
Returns: 50
"R?LRRRLLRLRLLLR??L??RRRLRL??L?RLR"
Returns: 9
"L??RL?LR?LRL?RLLL?L?L??RLR?R"
Returns: 15
"?LR???R?R?LLLLLRLR?RR?????LL??RR?R?LR??RL??LL?"
Returns: 22
"??R"
Returns: 3
"?RLRL?LL???LR?R?L?RRRL?????R?LRLR"
Returns: 15
"??RL?RLLL???L???L?R?LLLLRL??LRRLRRRL"
Returns: 21
"R?"
Returns: 2
"LRRLRRL???R?RL??L?LR?R??R??R?R"
Returns: 18
"?L??LLLR???LLLR?"
Returns: 12
"LRLRRRLRRLL?RRR?L??L?R???L?R?RLL"
Returns: 14
"LL???LRRLLLL??LLLL??RL?????R??L?LR?RLR?L?RL?LR"
Returns: 29
"RLLLLR?RL?LR?LRRL???LR??RL"
Returns: 10
"LRLR????RR?L?LL?R?R?LL?LR?R??RL?RLR?RL?LRR???RRLL"
Returns: 23
"?L"
Returns: 2
"R?L?R??L?R??LR??L??LLL?LL??LRL?R?LL?"
Returns: 24
"?RR?RLL?RRR???RL?R??RL?LR????"
Returns: 19
"?LR??LR?LL??RLRL??L?LLLR?L?RRRL?RRL"
Returns: 17
"LRL?RLRL?RL?LR?????LR?LR?LL"
Returns: 13
"RLRRLL??R?RL?R?RL?LRLLL?RLRLL?"
Returns: 10
"?LL??LLRRLLLLRRLL?L?RL?RLLLLRRR?L"
Returns: 16
"?LRR?RRLLRLR?RRRLRRR?R??RR???L"
Returns: 19
"????R?RRLLRL?LR?RRR?LRRR?RRLR??LR??LLL"
Returns: 21
"R???L?????RLL?LLRL"
Returns: 12
"???L?LRRR?R???RR???LL?R?RLR???L?R??L?LR?LR?RRRRRL"
Returns: 30
"RRL????LLLL???RL?R?R?R"
Returns: 11
"RRRL??R?R?L?RRL??RL?R?LR???R???LRLL?"
Returns: 21
"???RR?LRLRLLRR?R??L?LRL?LLR?RLLL?L?LL??LL?"
Returns: 22
"L?RRR"
Returns: 3
"LL?RR?RLR?LLRLLL??RLR?RR????"
Returns: 10
"RRRLR???RRLR?L???LR"
Returns: 11
"?RLLLLLRRLLLR??L?RL?RL?RLR?LRLRRLL?LR?R"
Returns: 14
"??RL??RRLRL?L?RRL?LRRRR?LR??LR????L??R?RLRLL??LR"
Returns: 22
"L?LL?R?RLL??LRL?R?LL?RLL?L????LR"
Returns: 21
"R??R?R?L??L??LRR?"
Returns: 11
"??LRL?RLRL?LR?LRRRL?RRLL"
Returns: 8
"LLR?RRL?R?RL?LLRL?L?LL?R?LR??"
Returns: 13
"RLLRLRLLL?RL??R??R?R?RRL???RLL?"
Returns: 12
"?RRRLR???L?RL?LRRR?RRRRRL?LL"
Returns: 16
"?RL????"
Returns: 5
"L?RLRRLRL?L"
Returns: 3
"LRLL?RL?LRR??"
Returns: 5
"L?LLLLLLRR?RLL?R?R?LRLLRRL??LRR??L???L"
Returns: 18
"RRLRL?RRLLR?LR?L?RLRR?L???LLLLL?L??LRLL?"
Returns: 18
"?LL????R"
Returns: 7
"??LL??"
Returns: 6
"LR?LR??R??LLL"
Returns: 7
"RLLLRL?L?LLL?L???R?LR?R?LRRR??LLLRL?LRLRR?LRLRL???"
Returns: 22
"R??LLL?R?L"
Returns: 6
"R???R?R?R?RLLLLL?L?LRR??L???L????RRLL?RR?LRLL"
Returns: 21
"LLR??LLR???R?L?L"
Returns: 10
"?R???????R?L???L?????R?L???R?R?L???????????R??????"
Returns: 42
"????L??LR??????R?R?R?????R?????????L????R???R"
Returns: 39
"?R??L??L??????L???L???????L?????L????R??L?????R?"
Returns: 42
"?????R??????L???R???????LRL?L??L?L?RL??R??????R?"
Returns: 36
"??????L??????R?RLLR?????R?????L?????R?RL?"
Returns: 31
"R???L?RR?R???????RR????????????R?L??????LR???"
Returns: 39
"???L??R????L???????RR???????L????????????R?"
Returns: 37
"L?L?R???R????????L?L????????????????????????"
Returns: 40
"L??????L????????L?????L???R?L?L??L??????RL???"
Returns: 41
"RR?L????RL???L??????LL???????????????????RL?????"
Returns: 40
"LRRLRLRRLRRRRLRLLRRRLRLRRLLLRRRLLRRLRRRR"
Returns: 10
"RRLLLLLRLRRLLRLLRRLLLLRRRRLLRRLLRLRRRLLRLLRRRRL"
Returns: 6
"LLLRLLRLRLLRLRLLRRLRRRLRRLLRRLLRRRRLLRRRLLRRL"
Returns: 6
"RLLLRRRRRLLLLLLLRRRRLLLLRLRRRRLLRLLRRRRRLLRRLRRLL"
Returns: 4
"RLLLLRLLRLRRRRLLRLLLRRLLRRLRRRLLLLRRLRRLLRLRLLRLRR"
Returns: 4
"RRLRRRLLRRLLLLRLLRRRLRRLLLRLRLLRRLLRRLRLLLRLR"
Returns: 4
"LRRRLLRRLLLRLLRRLRRLLLRRLRLRRLLRLLRRLRLLLRLLL"
Returns: 5
"RRLLRLLLRRLLLLRLRLRRRLLLRRLLRRRRLLRRRLLLLLLRLR"
Returns: 5
"LLLLLRRLLLLRLRRRLLLRRRLRLRRRRRLRLLLLRLLRRLRLRRLRRL"
Returns: 7
"LLLRRRLRRRLRLLRLLRRLLRRLLLLLRRLLRLRLRRRRRRRLR"
Returns: 4
"?LLRLLL?LLLLLLLR?LLRLRLLRRLRRRRRR?L?LLLLRRLLRRR"
Returns: 16
"LLRRRLLLRRLL?LLLRLRLRR?RRLRRRLLLL?LRLLLLL?LLLR"
Returns: 15
"LLLRLLLLLLLLRRRLLRLLLR??RLLLRRLRRRLRR?LLRLLRLLLLR?"
Returns: 16
"LRLLRRRRLRLRRLLLRLRRRL?LL?RLLRRLLLLLRLLL?LRRLLR"
Returns: 10
"LLLLLRRRRLRRRRLRLRRRL?LRLRLLRLLLRLRLLRL?RRLRRLRRR"
Returns: 5
"L?RLRL??RRRRLLLRLLRRRRLLRRLRRRRRRLRRLLRRLLRLRRR"
Returns: 13
"R?RRLRRRRRLRRRLLRLRRRLRRRRRRRLRRLLRLRRLRLLRLR"
Returns: 18
"LLLLRRRRLRLRLRLRLLRRLLLLLLLRLLL?RRRRRLRLRLL?LRLLRL"
Returns: 10
"LRLRLRRR?RLRLLRRRLRRLLRLRLRLLRRLRLRLRRRRR?LRR"
Returns: 11
"RLRLRRL?LLRRLRLLRRL?RLRRRRRRLL?RLRLRRLLRLRLLRLR"
Returns: 9
"RRLL?"
Returns: 2
"?LL?RRR"
Returns: 4
"L??????L????R??R??RR????R?R???R?RR?LL?L???????R?"
Returns: 38
"RRRR????LLL"
Returns: 8
"L?R?L?R?L?R?L?R?L?R?L?R?L?R?L?R?L?R?L?R?L?R?L?R?L?"
Returns: 26
"????????????????????????????????????????????????LL"
Returns: 50
"LLRR??R"
Returns: 3
"RRR???LLL"
Returns: 6
"RL??RL"
Returns: 3
"R?????????????L????????L???????????????????????L"
Returns: 46
"L?L?L?L?L?L?L?L?L?L?L?L?L?L?L?L?L?L?L?L?L?L?L?L?L?"
Returns: 50
"LLR?"
Returns: 2
"LLLLLRR?"
Returns: 5
"LR??????"
Returns: 6
"L??RR"
Returns: 3
"LLRRLLRRR"
Returns: 2
"RL???"
Returns: 3
"LRLRLRLLLL???RRRRR"
Returns: 7
"L?R??"
Returns: 3
"LL?RRR"
Returns: 3
"RR???????????????????????????????????LLL"
Returns: 37
"?LL?R?R"
Returns: 4
"L?R?LR"
Returns: 3
"RRLLL"
Returns: 2
"RR??LL??LL??R?R"
Returns: 8
"LRR??RRRLLLLLLL"
Returns: 6
"R?LL?R"
Returns: 3
"LL?RR"
Returns: 3
"LLLR??RRR"
Returns: 4
"L???RR?L"
Returns: 5
"L??R"
Returns: 3
"L?RL?RL?RL?RL?RL?RL?R"
Returns: 8
"??????????????????????????????????????????????L???"
Returns: 50
"LRR?LLLLLLLL"
Returns: 8
"?LLRR"
Returns: 3
"LR?"
Returns: 1
"LLLRRR????"
Returns: 4
"LL?RRR??"
Returns: 4
"L???R"
Returns: 4
"RRR?"
Returns: 4
"?L?R?L?R?L?R?L?R?L?R?L?R?L?R?L?R?L?R?L?R?L?R?L?R?L"
Returns: 26
"L?L?RR"
Returns: 4
"L?R?"
Returns: 2
"???R??L"
Returns: 6
"?LR"
Returns: 2
"LL???RRR"
Returns: 5
"RRRRRLL??"
Returns: 5
"LRR"
Returns: 1
"R?L?"
Returns: 2
"LL???RRR???R?RR???L"
Returns: 14
"LL?RLRR"
Returns: 3
"L?R"
Returns: 2
"??LL??RR"
Returns: 6
"RRRRLL?"
Returns: 4
"LLRR??"
Returns: 2
"LLLLLLLLLLLLLLLRRRLLLLLLLLLL"
Returns: 22
"RRLLLL?LRRR"
Returns: 4
"RRRRRLL?"
Returns: 5
"?L?R?L?R?RLR?R?R?L?R?LLL?L?RLRL?RL?L?L?R?L?R?L?R?L"
Returns: 24
"LR?RL"
Returns: 2
"LL??RR"
Returns: 4
"RRL"
Returns: 2