class Solution {
public:
bool isPathCrossing(string path) {
set<pair<int,int>>obj;
int curX=0;
int curY=0;
obj.insert({curX,curY});
for(int i=0;i<path.size();i++)
{
if(path[i]=='N')
{
curX=curX;
curY=curY+1;
if(obj.count({curX,curY})==1)
{
return true;
}
obj.insert({curX,curY});
}
if(path[i]=='S')
{
curX=curX;
curY=curY-1;
if(obj.count({curX,curY})==1)
{
return true;
}
obj.insert({curX,curY});
}
if(path[i]=='W')
{
curX=curX-1;
curY=curY;
if(obj.count({curX,curY})==1)
{
return true;
}
obj.insert({curX,curY});
}
if(path[i]=='E')
{
curX=curX+1;
curY=curY;
if(obj.count({curX,curY})==1)
{
return true;
}
obj.insert({curX,curY});
}
}
return false;
}
};
LeetCode:1496. 判断路径是否相交
路径交叉判断算法
最新推荐文章于 2024-02-22 20:15:00 发布
本文介绍了一个C++实现的路径交叉判断算法,通过使用set集合来记录路径上经过的所有坐标点,以此来判断路径是否出现交叉。算法遍历输入的路径字符串,根据字符更新当前位置,并检查该位置是否已存在于集合中,若存在则返回true,表示路径出现交叉。
684

被折叠的 条评论
为什么被折叠?



