Search⌘ K
AI Features

Solution: Simplify Path

Explore how to simplify Unix file paths by applying stack data structures. This lesson helps you understand processing path components by pushing valid directories and popping on encountering parent directory tokens, enabling you to build a canonical file path efficiently.

Statement

Given an absolute path for a Unix-style file system (always beginning with '/'), transform it into its simplified canonical form.

The Unix-style file system follows these rules:

  • A single period '.' represents the current directory.

  • A double period '..' represents the parent directory.

  • Multiple consecutive slashes (e.g., '//' or '///') are treated as a single slash '/'.

  • Any sequence of periods that does not match the above rules is treated as a valid directory or file name (e.g., '...' and '....' are valid names).

The resulting canonical path must satisfy the following:

  • It must begin with a single slash '/'.

  • Directories must be separated by exactly one slash '/'.

  • It must not end with a trailing slash '/', unless it is the root directory.

  • It must not contain any '.' or '..' components used to denote current or parent directories.

Return the simplified canonical path.

Constraints:

  • 11 \leq ...