根据题目意思分析,R只能向右移动,L只能向左移动
因此如果匹配的话
当在start中出现L时,在end中一定已经出现一个L,且此时R已经被匹配
当在end中出现R,在start中一定以及出现一个R,且此时L已经被匹配
class Solution {
public:
bool canTransform(string start, string end) {
int l = 0;
int r = 0;
for(int i = 0; i < start.size(); i++)
{
//特殊情况处理
if(i == 0)
{
if(end[i] == 'R' && start[i] != 'R')
return false;
}
if(i == start.size() - 1)
{
if(end[i] == 'L' && start[i] != 'L')
return false;
}
if(end[i] == 'L') l++;
if(start[i] == 'R') r++;
if(start[i] == 'L')
{
if(r != 0 || l == 0)
return false;
l--;
}
if(end[i] == 'R')
{
if(l != 0 || r == 0)
return false;
r--;
}
}
if(r != 0 || l != 0)
return false;
return true;
}
};