Description

Submission
class Solution {
public:
bool isPathCrossing(string path) {
map<char, pair<int, int>> dirs{{'N', {0, 1}}, {'S', {0, -1}}, {'W', {-1, 0}}, {'E', {1, 0}}};
set<pair<int, int>> visited;
pair<int, int> cur = {0, 0};
visited.insert(cur);
for(auto c: path) {
cur.first += dirs[c].first;
cur.second += dirs[c].second;
if(visited.find(cur) != visited.end()) return true;
visited.insert(cur);
}
return false;
}
};
