Simplify Path - Problem

You are given an absolute path for a Unix-style file system, which always begins with a slash '/'. Your task is to transform this absolute path into its simplified canonical path.

The rules of a Unix-style file system are as follows:

  • A single period '.' represents the current directory.
  • A double period '..' represents the previous/parent directory.
  • Multiple consecutive slashes such as '//' and '///' are treated as a single slash '/'.
  • Any sequence of periods that does not match the rules above should be treated as a valid directory or file name. For example, '...' and '....' are valid directory or file names.

The simplified canonical path should follow these rules:

  • The path must start with a single slash '/'.
  • Directories within the path must be separated by exactly one slash '/'.
  • The path must not end with a slash '/', unless it is the root directory.
  • The path must not have any single or double periods ('.' and '..') used to denote current or parent directories.

Return the simplified canonical path.

Input & Output

Example 1 — Basic Path Simplification
$ Input: path = "/home/"
Output: "/home"
💡 Note: Remove trailing slash except for root directory
Example 2 — Parent Directory Navigation
$ Input: path = "/home/../var/./log/../"
Output: "/var"
💡 Note: Start with home, go back with .., enter var, stay with ., enter log, go back with ..
Example 3 — Multiple Consecutive Slashes
$ Input: path = "/home//foo/"
Output: "/home/foo"
💡 Note: Multiple slashes '//' treated as single '/', remove trailing slash

Constraints

  • 1 ≤ path.length ≤ 3000
  • path consists of English letters, digits, period '.', slash '/' or '_'
  • path is a valid absolute Unix path

Visualization

Tap to expand
Path Simplification: /home/../var//logInput: /home/../var//logTransform using Unix rules:• .. = go to parent• . = current directory• // = single slash• Remove trailing /Process: home → .. (back to /) → var → logOutput: /var/log
Understanding the Visualization
1
Input
Complex Unix path with special directories
2
Process
Parse and simplify using directory rules
3
Output
Clean canonical path
Key Takeaway
🎯 Key Insight: Stack data structure perfectly models the 'go back' behavior of parent directory navigation
Asked in
Facebook 15 Amazon 12 Google 8 Microsoft 6
78.0K Views
High Frequency
~25 min Avg. Time
2.1K Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen