Super Crisp || Spoon Feeding explanation || Time = O(n)
\nclass Solution\n{\n    public:\n    bool canTransform(string start, string end)\n    {\n        int si = 0;\n        int ei = 0;\n        \n        while (si 
```\nclass Solution\n{\n    public:\n    bool canTransform(string start, string end)\n    {\n        int si = 0;\n        int ei = 0;\n        \n        while (si < start.size() || ei < end.size())\n        {\n\t\t    // Skip all \'X\' and find 1st letter after X in \'start\' & \'end\'.\n            while (si < start.size() && start[si]==\'X\') si++;\n            while (ei < end.size() && end[ei]==\'X\') ei++;\n            \n            // start = "XXL" --> start[si] = \'L\'\n            // end   = "RXX" -->   end[ei] = \'R\'\n            if (start[si] != end[ei])\n                return false;\n            \n            // start = "XXR" --> start[si] = \'R\'\n            // end   = "RXX" -->   end[ei] = \'R\'   --> XXR cannot be converted to RXX, i.e., si cannot be greater than ei\n            if (start[si]==\'R\' && si>ei)\n                return false;\n            \n            // start = "LXX" --> start[si] = \'L\'\n            // end   = "XXL" -->   end[ei] = \'L\'   --> LXX cannot be converted to XXL, i.e., si cannot be less than ei\n            if (start[si]==\'L\' && si<ei)\n                return false;\n            \n            si++;\n            ei++;\n        }\n        return true;\n    }\n};\n```\n\nPlease upvote if you understood the solution with my examples above. This will keep my spirits high. Thanks.
[]