列表

详情


8015. 距离原点最远的点

给你一个长度为 n 的字符串 moves ,该字符串仅由字符 'L''R''_' 组成。字符串表示你在一条原点为 0 的数轴上的若干次移动。

你的初始位置就在原点(0),第 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" 。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int furthestDistanceFromOrigin(string moves) { } };

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('_')

上一题