LeetCode刷题-71. 简化路径
题目链接:71. 简化路径
¶题解:
模拟题,总是处理两个斜杠中间字符!
¶题目简述:
给定一个绝对路径,该绝对路径以/开始,不一定以/结束,并且可能会出现连续斜杠,要求转换为最简的路径!
./:当前目录../:上层目录- 根目录没有上层目录,仍为根目录
¶题解:
思路: 将两个斜杠中间的字符截取出来,进行判断
答案的格式保证一定是/xxx/xxx...
.:即为当前目录,不处理,跳过即可..:即返回上一层目录,将当前答案字符串res从后向前删到第一个斜杠,再将此处斜杠删掉(保证不越界)- 空:即两个斜杠挨着,不处理,跳过
- 目录名:合法目录,将在答案最后加一个斜杠,再加上当前目录名
/:即累积的中间字符结束
注意:
- 以防给定的绝对路径最后不是空格,导致最后一组斜杠中间的字符无法截取,我们给最后没有斜杠的绝对路径加一个斜杠进行统一!
- 每次将
name字符串清空 - 对于在根目录进行上层操作的行为,会使得最后答案为空,所以在最后判断一下是否为空,是则返回一个斜杠!
string的back()和pop_back()属于C++ 11 标准!
¶AC代码:
1 | |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小牛博客!
评论





