给你一个字符串 path,其中 path[i] 的值可以是 'N'、'S'、'E' 或者 'W',分别表示向北、向南、向东、向西移动一个单位。
机器人从二维平面上的原点 (0, 0) 处开始出发,按 path 所指示的路径行走。
如果路径在任何位置上出现相交的情况,也就是走到之前已经走过的位置,请返回 True ;否则,返回 False 。
public static boolean isPathCrossing(String path) {
HashSet<String> p = new HashSet<>();
int x = 0;
int y = 0;
p.add(x+","+y);
for(int i = 0; i < path.length(); i++) {
switch (path.charAt(i)) {
case 'N': y++;
break;
case 'S': y--;
break;
case 'E': x++;
break;
case 'W': x--;
break;
}
if(!p.add(x+","+y)) {
return true;//当set中有相同的内容时添加失败返回false
}
}
return false;
}