Path Crossing - String - Easy - LeetCode
💻 coding

Path Crossing - String - Easy - LeetCode

1 min read 191 words
1 min read
ShareWhatsAppPost on X
  • 1The problem involves determining if a given path crosses itself on a 2D plane.
  • 2Movement is represented by characters 'N', 'S', 'E', and 'W' for north, south, east, and west respectively.
  • 3The solution uses a HashSet to track visited coordinates, ensuring efficient detection of path crossings.

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"The problem involves determining if a given path crosses itself on a 2D plane."

Path Crossing - String - Easy - LeetCode

Given a string path, where path[i] = 'N', 'S', 'E' or 'W', each representing moving one unit north, south, east, or west, respectively. You start at the origin (0, 0) on a 2D plane and walk on the path specified by path.

Return True if the path crosses itself at any point, that is, if at any time you are on a location you've previously visited. Return False otherwise.

Example 1:

Input: path = "NES" Output: false Explanation: Notice that the path doesn't cross any point more than once. Example 2:

Input: path = "NESWW" Output: true Explanation: Notice that the path visits the origin twice.

Constraints:

1 <= path.length <= 10^4 path will only consist of characters in {'N', 'S', 'E', 'W}

public class Solution {
 public bool IsPathCrossing(string path) {
 int x = 0;
 int y = 0;
 var set = new HashSet<string>();
 set.Add(GetKey(x,y));
 for(int i=0;i<path.Length;i++){
 switch(path[i]){
 case 'E':
 x++;
 break;
 case 'W':
 x--;
 break;
 case 'N':
 y++;
 break;
 case 'S':
 y--;
 break;
 }
 if(set.Contains(GetKey(x,y))){
 return true;
 }
 set.Add(GetKey(x,y));
 }
 
 return false;
 }
 
 private string GetKey(int x, int y){
 return x.ToString()+":"+y.ToString();
 }
}

Time Complexity: O(n)

Space Complexity: O(n)

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

sumitc91

Published on 2 October 2020 · 1 min read · 191 words

Part of AskGif Blog · coding

You might also like