Untitled

 avatar
unknown
plain_text
5 months ago
1.1 kB
3
Indexable
  int n = start.length();
        int i = 0, j = 0;

        while (i < n || j < n) {
            // Skip 'X' in the start string
            while (i < n && start.charAt(i) == 'X') {
                i++;
            }

            // Skip 'X' in the result string
            while (j < n && result.charAt(j) == 'X') {
                j++;
            }

            // If both pointers reach the end, the transformation is valid
            if (i == n || j == n) {
                return i == n && j == n;
            }

            // If the characters at i and j are different, transformation is not possible
            if (start.charAt(i) != result.charAt(j)) {
                return false;
            }

            // Check for invalid moves
            if (start.charAt(i) == 'L' && i < j) {
                return false; // 'L' can't move to the right
            }
            if (start.charAt(i) == 'R' && i > j) {
                return false; // 'R' can't move to the left
            }

            // Move both pointers forward
            i++;
            j++;
        }

        return true;
Editor is loading...
Leave a Comment