在Google采访中有人问我这个问题。我们给了一个由字母F,L,R组成的字符串。-这是机器人遵循的指令
F-向前走一步。
向左转。
R-向右转。
字符串长度最大为2500个字符。
字符串可以无限次运行。我们需要判断是否存在一个半径为r的圆(r可以是任何实数),以使机器人永远不会离开圆。我被困在这一点上。我想到了使用凸包,但是如何无限期地对其进行检查。请帮忙。提前致谢
可能的方向数为4。因此,在运行了4次仿真后,它的方向与最初的方向相同(每次摩擦都将其旋转相同的角度)。
这就是为什么连续运行4次只是将其平移了某个向量而没有任何旋转的原因。
因此,我们可以连续运行4次仿真,看看它是否在原始点停止。如果是这样,我们可以找到包含其路径的最小圆。否则,不存在这样的圈子。