2833. 距离原点最远的点 - 力扣(LeetCode)
2833. 距离原点最远的点 - 给你一个长度为 n 的字符串 moves ,该字符串仅由字符 'L'、'R' 和 '_' 组成。字符串表示你在一条原点为 0 的数轴上的若干次移动。 你的初始位置就在原点(0),第 i 次移动过程中,你可以根据对应字符选择移动方向: * 如果 moves[i] = 'L' 或 moves[i] = '_' ,可以选择向左移动一个单位距离 * 如果 moves[i] = 'R' 或 moves[i] = '_' ,可以选择向右移动一个单位距离 移动 n...
思路
中文题目表述有点混乱,实际意思是下划线 _ 出现的地方要选择 L 或者 R,使得移动后距离原点最远。
很明显在这一维空间上移动多远只和 L、R 的数量有关,谁多我们帮谁!
对 L 和 R 的出现数量分别计数即可,谁多就把下划线的数量交给他。
代码
class Solution {
public:
int furthestDistanceFromOrigin(string moves) {
// 题目有点混乱,意思是 '_' 这个地方要选择一个移动方向,使得移动后距离原点最远
// 很明显只和 L 和 R 的数量有关,谁多我们帮谁!
int numU=0,numL=0,numR=0;
for(char c:moves){
switch(c){
case 'L':
numL++;
break;
case 'R':
numR++;
break;
case '_':
numU++;
}
}
if(numL>=numR){
return numL+numU-numR;
}else{
return numR+numU-numL;
}
}
};
1 个帖子 - 1 位参与者