博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1041. Robot Bounded In Circle
阅读量:4649 次
发布时间:2019-06-09

本文共 1626 字,大约阅读时间需要 5 分钟。

本题题意:

一开始一个机器人站在了(0,0)上,面朝的方向是北,收到三个序列G,L,R。
G:直走
L:向左转
R:向右转
按序执行,永远重复。
返回TRUE,如果处在一个圈。

第一个卡住的点:

1.疑惑于机器人会不会不经过原点,然后还会出现一个圈?
不会。若在固定路线转圈,肯定是重复了若干次,回到了原点。否则路线是不能固定的。

idea:

1.如果第一次执行完一串指令后,就在原点,则一定是固定路线。
2.如果执行完一串指令后,不在原点,新的方向是dir,则有下面的结论:
dir不是北方,就一定可以回到原点。
证明:
如果dir指向南方,则下一次执行完,就一定回到原点(方向180度)
如果dir指向东方,则四次执行完,就一定回到原点(方向90度)

更简单的讲,机器人重复四次执行,判断是否在原点就可以。

第一次代码:

def isRobotBounded(self, instructions: str) -> bool:        a = instructions* 4        d = 1        """                1            2       4                3        """        r = [0,1,2,3,4]        p = [0,0]        for i in a:            if i == 'L':                d = r[d + 1 if d + 1 != 5 else 1]            elif i == 'R':                d = r[d - 1 if d - 1 != 0 else 4]            else:                if d == 1:                    p[1] += 1    #y + 1                elif d == 2:                        p[0] -= 1    #x - 1                elif d == 3:                    p[1] -= 1                else :                    p[0] += 1        return p == [0,0]

第二次代码

def isRobotBounded(self, instructions: str) -> bool:        a = instructions* 4        d = 0        """                0            3       1                2                i = (i + 1) % 4 will turn right                i = (i + 3) % 4 will turn left        """        rec = [[0,1],[1,0],[0,-1],[-1,0]]        x, y = 0, 0        for i in a:            if i == 'L':    d = (d + 3) % 4            elif i == 'R':  d = (d + 1) % 4            else:   x, y = x + rec[d][0], y + rec[d][1]        return x == 0 and y ==0

总的来说,就是菜。。 照着大神代码看- - - - - -

转载于:https://www.cnblogs.com/whyaza/p/10855381.html

你可能感兴趣的文章
雇佣K个工人的最小费用 Minimum Cost to Hire K Workers
查看>>
mysql优化方法
查看>>
[转]【HttpServlet】HttpServletResponse接口 案例:完成文件下载
查看>>
Eclipse配置默认的编码集为utf-8
查看>>
初学Python
查看>>
rman 脚本备份全过程
查看>>
图像处理笔记(十八):模板匹配
查看>>
Educational Codeforces Round 60 D. Magic Gems
查看>>
c# 保存和打开文件的方法
查看>>
调用图灵机器人API实现简单聊天
查看>>
MATLAB indexing question
查看>>
MATLAB 求解最优化问题
查看>>
【转载】java InputStream读取数据问题
查看>>
fatal error LNK1120: 11 unresolved externals
查看>>
测试工具类汇总
查看>>
WEB消息推送-comet4j
查看>>
安卓开发 数据存储
查看>>
贪心思维 专题记录 2017-7-21
查看>>
vue-router 跳转原理
查看>>
strncpy函数使用
查看>>