71. 简化路径
分析
-
追加斜杠便于分割:
- 为避免手动处理路径末尾的文件夹,先在路径末尾添加一个
'/'
。这样每个目录(或命令)都会被完整处理
- 为避免手动处理路径末尾的文件夹,先在路径末尾添加一个
-
逐字符遍历构建当前目录:
- 遇到非
'/'
字符时,累积到cur
,表示当前目录名 - 遇到
'/'
时,处理当前累积的cur
:".."
:回退到上一级目录"."
或空字符串:忽略- 普通目录名:追加到结果路径
res
- 遇到非
-
处理返回结果:
- 如果结果字符串
res
为空,返回根目录'/'
;否则返回简化后的路径
- 如果结果字符串
时间复杂度
时间复杂度 O(n)
空间复杂度
空间复杂度为 O(n)
C++代码
|
|