777 Swap Adjacent in LR String

1. Question

In a string composed of'L','R', and'X'characters, like"RXXLRXRXL", a move consists of either replacing one occurrence of"XL"with"LX", or replacing one occurrence of"RX"with"XR". Given the starting stringstartand the ending stringend, returnTrueif and only if there exists a sequence of moves to transform one string to the other.

Example:

Input: start = "RXXLRXRXL", end = "XRLXXRRLX"

Output: True

Explanation:
We can transform start to end following these steps:
RXXLRXRXL -> 
XRXLRXRXL ->
XRLXRXRXL -> 
XRLXXRRXL -> 
XRLXXRRLX

Note:

  1. 1 <= len(start) = len(end) <= 10000.

  2. Both start and end will only consist of characters in{'L', 'R', 'X'}.

2. Implementation

(1) Two Pointers

3. Time & Space Complexity

Two Pointers: 时间复杂度O(n), 空间复杂度O(1)

Last updated

Was this helpful?