class Solution {
public:
int furthestDistanceFromOrigin(string moves) {
}
};
8015. 距离原点最远的点
给你一个长度为 n
的字符串 moves
,该字符串仅由字符 'L'
、'R'
和 '_'
组成。字符串表示你在一条原点为 0
的数轴上的若干次移动。
你的初始位置就在原点(0
),第 i
次移动过程中,你可以根据对应字符选择移动方向:
moves[i] = 'L'
或 moves[i] = '_'
,可以选择向左移动一个单位距离moves[i] = 'R'
或 moves[i] = '_'
,可以选择向右移动一个单位距离移动 n
次之后,请你找出可以到达的距离原点 最远 的点,并返回 从原点到这一点的距离 。
示例 1:
输入:moves = "L_RL__R" 输出:3 解释:可以到达的距离原点 0 最远的点是 -3 ,移动的序列为 "LLRLLLR" 。
示例 2:
输入:moves = "_R__LL_" 输出:5 解释:可以到达的距离原点 0 最远的点是 -5 ,移动的序列为 "LRLLLLL" 。
示例 3:
输入:moves = "_______" 输出:7 解释:可以到达的距离原点 0 最远的点是 7 ,移动的序列为 "RRRRRRR" 。
提示:
1 <= moves.length == n <= 50
moves
仅由字符 'L'
、'R'
和 '_'
组成原站题解
rust 解法, 执行用时: 0 ms, 内存消耗: 2.1 MB, 提交时间: 2023-09-13 09:48:55
impl Solution { fn abs(val: i32) -> i32 { if val < 0 { return -val; } else { return val; } } pub fn furthest_distance_from_origin(moves: String) -> i32 { let (mut i, mut j, mut k) = (0, 0, 0); for x in moves.chars() { if x == '_' { i += 1; } else if x == 'L' { j += 1; } else if x == 'R' { k += 1; } } i + Self::abs(j - k) } }
php 解法, 执行用时: 8 ms, 内存消耗: 18.9 MB, 提交时间: 2023-09-13 09:47:51
class Solution { /** * @param String $moves * @return Integer */ function furthestDistanceFromOrigin($moves) { $_map = ['L' => 0, 'R' => 0, '_' => 0]; for($i = 0; $i < strlen($moves); $i++ ) { $_map[$moves[$i]]++; } return abs($_map['R'] - $_map['L']) + $_map['_']; } }
golang 解法, 执行用时: 0 ms, 内存消耗: 2 MB, 提交时间: 2023-08-28 10:20:17
func furthestDistanceFromOrigin(moves string) int { return abs(strings.Count(moves, "R")-strings.Count(moves, "L")) + strings.Count(moves, "_") } func abs(x int) int { if x < 0 { return -x }; return x }
python3 解法, 执行用时: 68 ms, 内存消耗: 16.1 MB, 提交时间: 2023-08-28 10:20:01
class Solution: def furthestDistanceFromOrigin(self, moves: str) -> int: return abs(moves.count('R') - moves.count('L')) + moves.count('_')