预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共12页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Thoughtworks公司面试题——MARSROVERS问题 来源于一个很早的帖子,题目如下,有人做过相关的解答。我也花了1个多小时写了一个,不过这第二个输出和5×5的地图冲突,实际上第二个Rover会走出这个地图。以下是原题AsquadofroboticroversaretobelandedbyNASAonaplateauonMars.Thisplateau,whichiscuriouslyrectangular,mustbenavigatedbytheroverssothattheiron-boardcamerascangetacompleteviewofthesurroundingterraintosendbacktoEarth.Arover\spositionandlocationisrepresentedbyacombinationofxandyco-ordinatesandaletterrepresentingoneofthefourcardinalcompasspoints.Theplateauisdividedupintoagridtosimplifynavigation.Anexamplepositionmightbe0,0,N,whichmeanstheroverisinthebottomleftcornerandfacingNorth.Inordertocontrolarover,NASAsendsasimplestringofletters.Thepossiblelettersare\L\,\R\and\M\.\L\and\R\makestheroverspin90degreesleftorrightrespectively,withoutmovingfromitscurrentspot.\M\meansmoveforwardonegridpoint,andmaintainthesameheading.AssumethatthesquaredirectlyNorthfrom(x,y)is(x,y+1).INpUT:Thefirstlineofinputistheupper-rightcoordinatesoftheplateau,thelower-leftcoordinatesareassumedtobe0,0.Therestoftheinputisinformationpertainingtotheroversthathavebeendeployed.Eachroverhastwolinesofinput.Thefirstlinegivestherover\sposition,andthesecondlineisaseriesofinstructionstellingtheroverhowtoexploretheplateau.Thepositionismadeupoftwointegersandaletterseparatedbyspaces,correspondingtothexandyco-ordinatesandtherover\sorientation.Eachroverwillbefinishedsequentially,whichmeansthatthesecondroverwon\tstarttomoveuntilthefirstonehasfinishedmoving.OUTpUTTheoutputforeachrovershouldbeitsfinalco-ordinatesandheading.INpUTANDOUTpUTTestInput:5512NLMLMLMLMM33EMMRMMRMRRM火星探测器一小队机器人探测器将由NASA送上火星高原,探测器将在这个奇特的矩形高原上行驶。用它们携带的照相机将周围的全景地势图发回到地球。每个探测器的方向和位置将由一个x,y系坐标图和一个表示地理方向的字母表示出来。为了方便导航,平原将被划分为网格状。位置坐标示例:0,0,N,表示探测器在坐标图的左下角,且面朝北方。为控制探测器,NASA会传送一串简单的字母。可能传送的字母为:\L\,\R\和\M\。\L\,和\R\分别表示使探测器向左、向右旋转90度,但不离开他所在地点。\M表示向前开进一个网格的距离,且保持方向不变。假设以广场(高原)的直北方向为y轴的指向。输入:首先输入的line是坐标图的右上方,假定左下方顶点的坐标为0,0。剩下的要输入的是被分布好的探测器的信息。每个探测器需要输入wolines。第一条line提供探测器的位置,第二条是关于这个探测器怎样进行高原探测的一系列说明。位置是由两个整数和一个区分方向的字母组成,对应了探测器的(x,y)坐标和方向。每个探测器的移动将按序