Problem Statement
The white pawns will be denoted 'R', because they are only allowed to move to the right.
The black pawns will be denoted 'L', because they are only allowed to move to the left.
You are given a
You are now allowed to make some moves (as many as you wish, possibly zero). In each move you may either take a 'R' pawn and move it one cell to the right, or take a 'L' pawn and move it one cell to the left. Of course, both types of moves are only valid if the destination cell is currently empty. Pawns are not allowed to move out of bounds.
You are also given a
If it is possible to reach target from begin by making some valid moves, return "Possible" (quotes for clarity), otherwise return "Impossible".
Definition
- Class:
- FoxAndChess
- Method:
- ableToMove
- Parameters:
- String, String
- Returns:
- String
- Method signature:
- String ableToMove(String begin, String target)
- (be sure your method is public)
Constraints
- begin will contain between 1 and 50 elements, inclusive.
- begin and target will contain the same number of elements.
- Each character in begin and target will be one of '.', 'L' and 'R'.
Examples
"R..."
"..R."
Returns: "Possible"
You have to move the only pawn to the right twice.
"..R."
"R..."
Returns: "Impossible"
Here target cannot be reached because the only pawn is only allowed to move to the right.
".L.R.R."
"L...R.R"
Returns: "Possible"
".L.R."
".R.L."
Returns: "Impossible"
"LRLLRLRLLRLLRLRLRL"
"LRLLRLRLLRLLRLRLRL"
Returns: "Possible"
"L"
"."
Returns: "Impossible"
"L.LLRRLLRLRRLRLRLRRRLR"
"LLL.RRLLRLRRLRLRLRRRLR"
Returns: "Possible"
"RRLRLLLLRRRLLLRRRRRLRRRRRRLRRRLRRRRLLLRRLL"
"RRLRLLLLRRRLLLRRRRRLRRRRRRLRRRLRRRRLLLRRLL"
Returns: "Possible"
"......R....LR.L.LR..L.L..."
"..RL..........L.RR....LL.L"
Returns: "Impossible"
"RRR..R...L.LLLR...LLL.LLRRRR.L.LRLRRRRRR.R..RR."
"..R.RRR.L..LLLRL.LL.L.L.R.RRRLL.RLR.RRR.RR.RR.R"
Returns: "Possible"
"LLRRRRLRRRL.RLR.R"
"...LR.LLR.RLL...."
Returns: "Impossible"
"..............R"
"LLR.R.RRLRRL..L"
Returns: "Impossible"
"...LLRLLRLLLLLLRLLLR.LL.L.RLLLLLLRL"
"LRLLRRRL.RRLLLL..RLLLRLLLRRR..RRRR."
Returns: "Impossible"
"R.."
"RRR"
Returns: "Impossible"
"..L.L...L........R.....L"
".L......L..RRL..L.L..RLL"
Returns: "Impossible"
".RRL.LR.LL.R.LL..LR.L.LR.R.L.R..LRRLL.RR.RL"
"LLLRRR.RLR.L.RRRL.RLRL.LR.....LL..L.RRL..R."
Returns: "Impossible"
"...........R"
"R..RR....L.."
Returns: "Impossible"
"LR.L."
"L..R."
Returns: "Impossible"
"RLRR.RR..R.RRRRLRRLRRRRRLRRRRL"
"RLLL.LL.LLRLRLR.RLRRLR.LLL.L.."
Returns: "Impossible"
".L..R.LLR."
"RR.R.....L"
Returns: "Impossible"
"R.R..RL...R.RR...R..L..............R..L..."
"....L.....L...R...L.....R..RLR....RR..L..."
Returns: "Impossible"
"L.L.LR..L.RLL..LR..LR.RLR.R...R..LLL..LL"
"L..LR..L...L....R.LRL.R.RLR.L.RRL.RRRRL."
Returns: "Impossible"
"RL.R.RRR...RRLL.RL.L.R...R.RL.L.RRR.R....L..R.R"
".LL..LL..R.RR..R...L.L..RRR.RLL..L.LRR....RLRLL"
Returns: "Impossible"
".RR.RRRRR.RRR.RRR.R.R.R.RR.R..."
".....RRRRRR.R.RRR.RR..R.RRRR.RR"
Returns: "Possible"
"........................LR......"
"..L.........................R..."
Returns: "Possible"
"...L.L.LL.L.LL.R."
"LLL...LLL..L....R"
Returns: "Possible"
"......RL.LL..L...L...R.LL......L.L....RL"
"...L.R.....LL....R..R.R...LR.R..LL.R...."
Returns: "Impossible"
"RRRRRRRRLLRRRRRRLLRLLL.LLRLRLRL"
"RLRRRRRL.RLL..LRR..L.LLL.RL.LLL"
Returns: "Impossible"
"LLR....R..RRRL.......L.R....R.LR.R..RL.RLR"
"..R.RRR....L..RRL.LL.LL...L.RL...LL..L...R"
Returns: "Impossible"
"L.L...RRRL..RL.."
"R.R.L.L....LRRR."
Returns: "Impossible"
"..LLLLLLRLLLRLLRL.RR.LLRLLRRL.RL.L.RRL"
"RLRLR.RR.LLR.L.LRLRR..R.LLRRRLRLRRLRRR"
Returns: "Impossible"
"R..LL.RL.RLLRR..R....RL.R.....R.R."
"L.RRL.L.R.R.RR...R.R.RL.RL..LRR.LR"
Returns: "Impossible"
"RR..L...RLLLLR...L....LR...LRL"
"..R..R.RL...L.L.LR.L.L.LR..LLR"
Returns: "Impossible"
"LLLLLLRR..RRR..R.L."
"LLLLLL..R.RR.RRR.L."
Returns: "Possible"
"R.....R.....R...."
".........L...R..R"
Returns: "Impossible"
"RRR.L.LLLLLLRR.RRRRR..RRR.R"
"R.RRLLLLLLL..RRR.RR..RRRRRR"
Returns: "Possible"
"LLLLLRRRRLLL.RLL.R.LLRLLLLLRLLR.R"
"L.LLLL.LR.RLRLLLRLL.LLLLRLLLLRLLR"
Returns: "Impossible"
"RRRR.RRR.RRRRR.RR.RR.RR..RRRRR.R..RRR."
"RR..RR..R.RRRRRRRRRRR..RR.RR.RRR.RRR.R"
Returns: "Possible"
".RRR.LL.LLL.R.R.RRLLL.LRRRLR.LL.....LRL...LR."
"...LRL.L.RRR.L.LR.R..RLL..L.LRLR.L.L.RRLRRLL."
Returns: "Impossible"
".RLRRL.LL..RLR.....LRR.R..R..RRLRLLR.R.LLL.LLRL.."
"LLRRLLRL.LL....R.RL..LRL.R..LRRLRLLR....L.L.LLL.."
Returns: "Impossible"
"RL.RLR..L.R.R..L.R..R"
"..LRL.........RR....L"
Returns: "Impossible"
".RLLL"
"LL.RL"
Returns: "Impossible"
"..L........L..............L.L......"
".LL.L................L............."
Returns: "Possible"
"LLLRLRRLLLL.RLR"
"RLLLRRR.LRRRL.."
Returns: "Impossible"
"R.LRR"
"LLLL."
Returns: "Impossible"
"...L....RRR.LL..R..RL.R.R..R...R.L.......RR.LR"
".LLL..RLLL.R.RRR.L.LLLLLL..LRRL...LRL...L....."
Returns: "Impossible"
"LL..LLRRLR..L."
"LLLLRRLLRRLLRL"
Returns: "Impossible"
".RLL.LR..R..RR.RR.R.R..LLLLLR.RL.L.LL.LL.L.L"
".RLLL......R.RRRRRR..RLLLLL..RRLLLLLL.L.L..."
Returns: "Possible"
"LLL"
"LLL"
Returns: "Possible"
"...LR......R...R..."
"R....LR...........R"
Returns: "Impossible"
"LLLRLL.RR..RRRRL.R...L..RRLL....L.L.L"
"...L..........RR...R..L.R.L.LLL..R..."
Returns: "Impossible"
"LRLLR.R...RLL..L"
"RRLLLLL.RRLRLRRR"
Returns: "Impossible"
"RL.R.RR.RRLLL.RL.RL"
"LL.RR.LLL.LRR.LLRR."
Returns: "Impossible"
"LRR.R.LL.LLR.L.LLL.RRR.LRR.RL..LLR...L.LLLLR.RRRR."
"L.RR.RLLL.LRL.LLL..RRRL..RRRLL..L..RLL.LLL..R.RRRR"
Returns: "Possible"
"RLRRRRRR..RRR.RR.L..R.RR..RR.RR.RR..LR..R..."
"RL...R.RRRRRRRRRRL....R.R..RRRR..RRRL...R.R."
Returns: "Possible"
"RLLLRLLRLLLRLRLLR.RLR.R.LRLRLRRLLR."
"LRLLRRR.L.LLLLLLLRRLLLLRRR.RRLL.RLL"
Returns: "Impossible"
"L.L.R.."
"LRRLRRR"
Returns: "Impossible"
"L...L..RL.R.LL.R..L.R...L..R."
".......LRR..RLL..LR.L...LRL.."
Returns: "Impossible"
"R"
"R"
Returns: "Possible"
"RRRRLR.R.R.RLRR...LR...L.RRL"
"LRLR.L.L..L.LLLL..LLR..RRLR."
Returns: "Impossible"
"RLL.RL.RLRLRLRLLRR.L.L"
"..LR.LR.RRLRRRRRLRRLLL"
Returns: "Impossible"
"LLRRRRRR.RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR.LL"
"LL.RR.RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRLL"
Returns: "Possible"
"RRRLRLRR.RR.R.L.R"
"RLRLR...RL.LLLLRR"
Returns: "Impossible"
"RLR.RRRR.LL..R.LRR"
"LR.RLL..RLRLRLRLLR"
Returns: "Impossible"
"RRL"
".RL"
Returns: "Impossible"
"R..RRLLRRR.LRR...L"
".RLRLLL.LR....LRLR"
Returns: "Impossible"
"L.RRL"
".RLRR"
Returns: "Impossible"
"..LLL"
"LLL.."
Returns: "Possible"
"RRLLRLLLLRRL.R.RLLLLRRLRRLLLLLLRRRRRLLRRLRL"
"LRRRLRR.LLLLRRLLRRR.LRRRLLLLRLRLRLLRLLLRLRL"
Returns: "Impossible"
".L"
"LL"
Returns: "Impossible"
".R......."
"........R"
Returns: "Possible"
"LR.LRLR.L.LLRLRLRRR.RRRLRRLLR.LRRLRL..LRRRRRRLLRL"
"...............R.R........R...........R.....R...."
Returns: "Impossible"
"RL."
"RL."
Returns: "Possible"
"....R.....................R............."
".L.L..RRLLLLLRL.RL.R.LL.L..RLRR..RR...R."
Returns: "Impossible"
"LRL..LL.LLLRRLLL.L"
"R.L..LLLLLRRRRRR.L"
Returns: "Impossible"
"........LLL..R...L"
".L.LL........R.L.."
Returns: "Possible"
".....LL.LLR.........R..R....."
"..LL.LL.............R..R...R."
Returns: "Possible"
"L..R....LLR...R.R.....LL.....L.L.R...L.."
"......................L.....LRR...R.L..."
Returns: "Impossible"
"..R."
"L.LR"
Returns: "Impossible"
"RLLRRRRL.LRLR.L."
"L..RLR.R....R.L."
Returns: "Impossible"
"RRLRRRRLLRLRLLRLLLLRLRLR"
"LLRRRR.LRLLRRLLRLRRLR.RR"
Returns: "Impossible"
"LL"
"LR"
Returns: "Impossible"
"LLRRLRLRLLL"
"LLRRLRLRLLL"
Returns: "Possible"
"LLLRL.LLLLRRRLLRLL.R..RR"
".RRRR..L.LRL.LLLR.RLR.RR"
Returns: "Impossible"
".L"
"L."
Returns: "Possible"
"R...R.RLRRL.RL."
".LR.R.R..R.LRLR"
Returns: "Impossible"
"L.L..LL.R.LLL."
"...L....L....."
Returns: "Impossible"
".....L....L."
"LR...L.RR.LR"
Returns: "Impossible"
".LR.L.LL."
"L..RLLL.."
Returns: "Possible"
"LRRRRRRRRRRRRRR.RRR"
"LR.RRRRRRRRRRRRRRRR"
Returns: "Possible"
".L.R.R....LR."
"....LLR..R.L."
Returns: "Impossible"
"L.LLL"
"LL.LL"
Returns: "Possible"
"..RR.RRR.RRRRRRR.R.R...R..RR....RR.L.RRR."
"..R..R...R..RR.RRRR.R..RR.R.RRRR.RRL..RRR"
Returns: "Possible"
"R.RRRRR.RR.R.R.RRR.R.R..R.R...R.RRRRRRR.R.."
"...RR..R....RR.R.RR.R.RRRR..RRRR.RRRRRRRR.R"
Returns: "Possible"
"........R..R..R..............L...L.........."
"L......L..R............R..R.R..L..R...R.L..."
Returns: "Impossible"
"..................L.....R..............R..R."
"L..L..L...L................................."
Returns: "Impossible"
"...L...."
".L......"
Returns: "Possible"
"LR.RRLRRRLR.RRRLR.LRRLL.LRRR"
"RR.RLR.LR.RL.LRRLLLRLL.RR..R"
Returns: "Impossible"
".RRLL.L.R.LR.RRLLRLLLRRLLRRRRRRLL.LR"
"L.L.R...L..R.L..........RL....L...RL"
Returns: "Impossible"
"RR...RRRR.LLL..L"
".LR.RLLL.R.L.R.R"
Returns: "Impossible"
"R.R.R.RR.LR.LL....LL....L.LLLL.LLLL.LLL...L..LLL"
"R...RRR.RLRLL.LLLL.LLLL.....LLL....LLL..L.LL...L"
Returns: "Possible"
"LR"
"LR"
Returns: "Possible"
"..R...LL"
".L.RL..."
Returns: "Impossible"
".......R....L.."
".........R.L..."
Returns: "Possible"
".......................L...................."
"..L........................................."
Returns: "Possible"
"...........L...R........L...R...."
".....R...............R.L.......R."
Returns: "Impossible"
"."
"L"
Returns: "Impossible"
"LR.."
"LRRR"
Returns: "Impossible"
"R"
"."
Returns: "Impossible"
"L."
"LR"
Returns: "Impossible"
"RL"
"LR"
Returns: "Impossible"
"..R.L.."
".L...R."
Returns: "Impossible"
".LR.."
".L..R"
Returns: "Possible"
".R."
".RL"
Returns: "Impossible"
"RR.."
"..RR"
Returns: "Possible"
"."
"R"
Returns: "Impossible"
"L."
"LL"
Returns: "Impossible"
"..."
"..L"
Returns: "Impossible"
"..............................LLLLLLLLLLLLLLLLLLLL"
"LLLLLLLLLLLLLLLLLLLL.............................."
Returns: "Possible"
".."
".L"
Returns: "Impossible"
"R.R"
"RR."
Returns: "Impossible"
"LRRR...L.R.LLLL.R.....LL.LRR.........."
"L..RRLR...RLLLL....RLLL...R......R...."
Returns: "Impossible"
"R..L"
".LR."
Returns: "Impossible"
"RRRRRRRRRRRRRRRRRRRR.............................."
"RRRRRRRRRRRRRRRRRRRR.............................."
Returns: "Possible"
"....."
"LLRRR"
Returns: "Impossible"
".."
".."
Returns: "Possible"
".LR"
"LR."
Returns: "Impossible"
".LL"
"LL."
Returns: "Possible"
".RL."
".LR."
Returns: "Impossible"
"L.R.RR"
"L.RR.R"
Returns: "Impossible"
"L.L"
".LL"
Returns: "Impossible"
"RRRRRRRRRRRRRRRRRRRRRRRRR........................."
".................................................."
Returns: "Impossible"
"R."
"LR"
Returns: "Impossible"
"L.L.L"
"L..LL"
Returns: "Impossible"
".."
"LR"
Returns: "Impossible"
"RR."
".RR"
Returns: "Possible"
"..."
".LR"
Returns: "Impossible"
"R..L"
"L..R"
Returns: "Impossible"
"RRRRR........................................LLLLL"
"...................RRRRRLLLLL....................."
Returns: "Possible"
"RR."
"RRR"
Returns: "Impossible"
"RR..."
"...RR"
Returns: "Possible"
"L."
".L"
Returns: "Impossible"
"...L.."
"...LL."
Returns: "Impossible"
"R...R....R.....R...R....L......L.....L.....L.....L"
".................................................."
Returns: "Impossible"
"R"
"L"
Returns: "Impossible"
"R.....R.....R.....R.....R.....R.....R.....R......."
"RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR"
Returns: "Impossible"
"R..."
"..RR"
Returns: "Impossible"
"RL."
"L.R"
Returns: "Impossible"
"R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R"
"........................RRRRRRRRRRRRRRRRRRRRRRRRR"
Returns: "Possible"
".R.R.R...R...L..L.L.R.R.L.R..R...R..R.L.R.L.R.R.R."
".................................................."
Returns: "Impossible"
"RRRRR....."
".....RRRRR"
Returns: "Possible"
"L.L"
"LRL"
Returns: "Impossible"
"RL."
".LR"
Returns: "Impossible"
".R.L"
"L.R."
Returns: "Impossible"
".RL."
"L..R"
Returns: "Impossible"
"...."
"..RR"
Returns: "Impossible"
"RRR..LLL"
".RRRLLL."
Returns: "Possible"
".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"
"RL.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: "Impossible"
"RLR.LR"
"RL.RLR"
Returns: "Possible"
"R....L"
".L..R."
Returns: "Impossible"
"RRL."
".RLR"
Returns: "Impossible"
".."
"RR"
Returns: "Impossible"
"RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR..RL"
"RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR..LR"
Returns: "Impossible"
".LR"
"L.R"
Returns: "Possible"
"L...L...L"
"LLL......"
Returns: "Possible"
"LR."
"LRR"
Returns: "Impossible"
"RRLR"
"RLRR"
Returns: "Impossible"
"....."
"...R."
Returns: "Impossible"
"R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R."
".................................................."
Returns: "Impossible"