Open yankewei opened 1 year ago
class Solution {
/**
* @param String $start
* @param String $target
* @return Boolean
*/
function canChange($start, $target) {
$length = strlen($start);
$i = 0;
$j = 0;
while ($i < $length && $j < $length) {
if ($start[$i] === '_') {
$i++;
continue;
}
if ($target[$j] === '_') {
$j++;
continue;
}
if ($start[$i] !== $target[$j]) {
return false;
}
if ($start[$i] === 'L' && $i < $j) {
return false;
}
if ($start[$i] === 'R' && $i > $j) {
return false;
}
$i++;
$j++;
}
while ($i < $length) {
if ($start[$i] !== '_') {
return false;
}
$i++;
}
while ($j < $length) {
if ($target[$j] !== '_') {
return false;
}
$j++;
}
return true;
}
}
给你两个字符串 start 和 target ,长度均为 n 。每个字符串 仅 由字符 'L'、'R' 和 '_' 组成,其中:
字符 'L' 和 'R' 表示片段,其中片段 'L' 只有在其左侧直接存在一个 空位 时才能向 左 移动,而片段 'R' 只有在其右侧直接存在一个 空位 时才能向 右 移动。 字符 '_' 表示可以被 任意 'L' 或 'R' 片段占据的空位。 如果在移动字符串 start 中的片段任意次之后可以得到字符串 target ,返回 true ;否则,返回 false 。
示例 1:
示例 2:
示例 3:
提示: