输入:"L__R__R", "L______RR" 输出:false 但在本地调试,输出是 true ,是代码哪里出错了吗?
bool canChange(string start, string target) {
//长度一定要相同
if (start.size() != target.size())
return false;
int num = start.size();
int i, j = 0;
while (i < num && j < num)
{
while (i < num && start[i] == '_')
i++;
while (j < num && target[j] == '_')
j++;
// L 和 R 的排序一定要相同
if (start[i] != target[j])
return false;
// R 只能往右移,所以下标一定要小,才能往右移( i + x = j )
if (start[i] == 'R' && i > j)
return false;
// L 只能往左移,所以下标一定要大,才能往左移( i - x = j )
if (start[i] == 'L' && i < j)
return false;
i++;
j++;
}
while (i < num)
{
if (start[i++] != '_')
return false;
}
while (j < num)
{
if (target[j++] != '_')
return false;
}
return true;
}
1
neteroster 2022-07-12 10:54:35 +08:00 1
int i, j = 0;
|
2
jmc891205 2022-07-12 11:04:00 +08:00 1
好像 debug 的时候未初始化的变量会置零
|
4
anonymousar 2022-07-12 11:26:57 +08:00
熟悉的周赛
|
5
lixiekun 2022-07-12 14:02:44 +08:00
上周天周赛第三题,卡了我好久
|