Algorithm 找到前进而不是后退的路径的算法
我曾面临面试问题,但无法回答。有人能指导我吗? 问题是- 有一条隧道有左转弯和右转弯,但没有T形转弯,就像没有左转弯和右转弯同时出现的情况一样。现在我给出了三种方法 void GoStraight//移动staright 左转//左移一次 布尔伊斯沃尔//如果存在墙,则返回true 现在编写一个程序,在不后退的情况下继续前进 我已经试过了,但不知道如何正确行动Algorithm 找到前进而不是后退的路径的算法,algorithm,Algorithm,我曾面临面试问题,但无法回答。有人能指导我吗? 问题是- 有一条隧道有左转弯和右转弯,但没有T形转弯,就像没有左转弯和右转弯同时出现的情况一样。现在我给出了三种方法 void GoStraight//移动staright 左转//左移一次 布尔伊斯沃尔//如果存在墙,则返回true 现在编写一个程序,在不后退的情况下继续前进 我已经试过了,但不知道如何正确行动 do { GoStraight(); }while(!IsWall()) 更新: 我得到了完整的解决方案,
do
{
GoStraight();
}while(!IsWall())
更新:
我得到了完整的解决方案,就像
do{
gostraight();
if(isWall())
{goLeft();Continue;
}
}while(true);
那么:
while (IsWall())
TurnLeft()
GoStraight()
用例:
***** * ***
> * * *
*** * *** *
* * > *
* *** *****
R R L L L R
到目前为止你有试过什么吗?我们不为您编写程序。这是解决迷宫的正确规则!!左手在你的情况下,是我还是你不会回到你原来的地方,如果有一个右转?@MAV是的,但你知道,问一个愚蠢的问题。。。不要当着面试官的面这么说!当我们直线移动时,我们找到了墙,然后我们将向左移动,再次检查是否有墙。如果有墙,我们将向左移动,否则继续直线移动。因此,如果我们连续向左移动两次,这意味着我们已从当前位置向后移动。不是吗?
***** * ***
> * * *
*** * *** *
* * > *
* *** *****
R R L L L R