2022-04-30:在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方。注意: 北方向 是y轴的正方向。 南方向 是y轴的负方向。 东方向 是x轴的正方向。 西方向 是x轴的负方向。 机器人

Posted 福大大架构师每日一题

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2022-04-30:在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方。注意: 北方向 是y轴的正方向。 南方向 是y轴的负方向。 东方向 是x轴的正方向。 西方向 是x轴的负方向。 机器人相关的知识,希望对你有一定的参考价值。

2022-04-30:在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方。注意:
北方向 是y轴的正方向。
南方向 是y轴的负方向。
东方向 是x轴的正方向。
西方向 是x轴的负方向。
机器人可以接受下列三条指令之一:
“G”:直走 1 个单位
“L”:左转 90 度
“R”:右转 90 度
机器人按顺序执行指令 instructions,并一直重复它们。
只有在平面中存在环使得机器人永远无法离开时,返回 true。否则,返回 false。
输入:instructions = “GGLLGG”
输出:true
解释:机器人最初在(0,0)处,面向北方。
“G”:移动一步。位置:(0,1)方向:北。
“G”:移动一步。位置:(0,2).方向:北。
“L”:逆时针旋转90度。位置:(0,2).方向:西。
“L”:逆时针旋转90度。位置:(0,2)方向:南。
“G”:移动一步。位置:(0,1)方向:南。
“G”:移动一步。位置:(0,0)方向:南。
重复指令,机器人进入循环:(0,0)——>(0,1)——>(0,2)——>(0,1)——>(0,0)。
在此基础上,我们返回true。
力扣1041. 困于环中的机器人。

答案2022-04-30:

经过一串指令后,如果在原点,或者不同方向,那么重复执行指令,必能回到原点。
掌握了这个规律,代码非常容易实现。

代码用rust编写。代码如下:

fn main() 
    let ans = is_robot_bounded("GGLLGG");
    println!("ans = ", ans);


fn is_robot_bounded(ins: &str) -> bool 
    let mut r: isize = 0;
    let mut c: isize = 0;
    let mut direction: isize = 0; // 0 1 2 3
    let str = ins.chars();
    for cur in str 
        if cur == 'R' 
            direction = right(direction);
         else if cur == 'L' 
            direction = left(direction);
         else 
            r = row(direction, r);
            c = col(direction, c);
        
    
    return r == 0 && c == 0 || direction != 0;


fn left(direction: isize) -> isize 
    if direction == 0 
        3
     else 
        direction - 1
    


fn right(direction: isize) -> isize 
    if direction == 3 
        0
     else 
        direction + 1
    


fn row(direction: isize, r: isize) -> isize 
    if direction == 1 || direction == 3 
        r
     else 
        r + if direction == 0  1  else  -1 
    


fn col(direction: isize, c: isize) -> isize 
    if direction == 0 || direction == 2 
        c
     else 
        c + if direction == 1  1  else  -1 
    

执行结果如下:


左神java代码

以上是关于2022-04-30:在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方。注意: 北方向 是y轴的正方向。 南方向 是y轴的负方向。 东方向 是x轴的正方向。 西方向 是x轴的负方向。 机器人的主要内容,如果未能解决你的问题,请参考以下文章

困于环中的机器人

leetcode 1041. 困于环中的机器人

2022-04-30连岳摘抄

Study 4 —— 数据类型

直线圆其他图形可以将一个无限大的平面分成的块数

BZOJ 3190 3190: [JLOI2013]赛车 (半平面交)