很久很久以前,在穿越狂野西部一片沙漠的途中,…
你迷路了,有人给你指引到达目的地的方向。 方向为["NORTH", "SOUTH", "SOUTH", "EAST", "WEST", "NORTH", "WEST"]。 显然"NORTH"和"SOUTH"是相反的方向,"EAST“和"WEST"也是。 朝一个方向前进,然后按反方向前进等于回到原地。 由于这是狂野的西部,天气恶劣,严重缺水,你要节省自己的体力,否则你可能会渴死!
如何才能根据指引聪明的穿越沙漠?
那人给出的方向指示是:例如:
["NORTH", "SOUTH", "SOUTH", "EAST", "WEST", "NORTH", "WEST"]
你可以明显看出往"NORTH",然后往"SOUTH"肯定不合理,最好原地不动!所以你的任务是简化指引,识破真正的方向。在这种情况下,简化后明智的方向是:
["WEST"]
怎么一回事?
举个栗子:
在 ["NORTH", "SOUTH", "EAST", "WEST"]中,方向"NORTH"+"SOUTH"相反,原地不动,方向移除。路径变为[“EAST”,“WEST”],现在“EAST”和“WEST”彼此抵消,因此最终结果为[ ]。
在["NORTH", "EAST", "WEST", "SOUTH", "WEST", "WEST"]中,"NORTH"和"SOUTH"之间并没有直接相反,但在消除"EAST"和"WEST"之后,"NORTH"和"SOUTH"就变的直接相反了,所以整个路径可以减少到[“WEST”,“WEST”]。
不可简化的栗子:
[“NORTH”,“WEST”,“SOUTH”,“EAST”]不可简化,因为相邻的两个字符串不是相反方向。
任务
写一个函数dirReduc(),它将使用一个字符串数组,将相邻的两个相反方向移除并返回一个字符串数组。
示例:
dirReduc(["NORTH", "SOUTH", "SOUTH", "EAST", "WEST", "NORTH", "WEST"]) => ["WEST"]
dirReduc(["NORTH", "SOUTH", "SOUTH", "EAST", "WEST", "NORTH"]) => []