
方法一 Set集合
用x=0,y=0来模拟点的坐标移动,N就是y+1,S就是y-1,E就是x+1,W就是x-1,没有重复出现的坐标就代表没有相交
- var isPathCrossing = function(path) {
- let set = new Set()
- let x=0,y=0
- set.add(x+','+y)
- for(let char of path){
- switch(char){
- case "N":y++;break;
- case "S":y--;break;
- case "W":x--;break;
- case "E":x++;break;
- }
- if(set.has(x+','+y)) return true
- else set.add(x+','+y)
- }
- return false
- };
消耗时间和内存情况:
