052 · Crawler Log Folder
algorithm
Problem
给定一个字符串数组 logs。
你正在文件系统里移动。初始时,你位于主文件夹。
每个 logs[i] 表示一次操作:
"../"表示回到当前文件夹的上一级文件夹"./"表示停留在当前文件夹"x/"表示进入名为x的子文件夹
如果你已经在主文件夹,执行 "../" 后仍然留在主文件夹,不会再往上移动。
请返回:执行完所有操作以后,最少需要多少次 "../" 操作才能回到主文件夹。
例如:
logs = ["d1/", "d2/", "../", "d21/", "./"]
从主文件夹开始:
main -> d1 -> d2 -> d1 -> d21 -> d21
最后位于 d21,它在主文件夹下面两层,所以需要执行 2 次 "../" 才能回到主文件夹。
答案是:
2
Examples
示例 1
Input: logs = ["d1/", "d2/", "../", "d21/", "./"]
Output: 2
解释:最终路径相当于 main/d1/d21,需要向上移动两次才能回到主文件夹。
示例 2
Input: logs = ["d1/", "d2/", "./", "d3/", "../", "d31/"]
Output: 3
解释:最终路径相当于 main/d1/d2/d31,需要向上移动三次才能回到主文件夹。
示例 3
Input: logs = ["d1/", "../", "../", "../"]
Output: 0
解释:第一次 "../" 回到主文件夹。后面的 "../" 不会让位置超过主文件夹,所以最后已经在主文件夹中。
Constraints
- \(1 \leq\)
logs.length\(\leq 10^3\) - \(2 \leq\)
logs[i].length\(\leq 10\) logs[i]只包含小写英文字母、数字、"."和"/"logs[i]是"../"、"./",或者形如"x/"的字符串x由小写英文字母和数字组成
Link
→ Solution