本文共 531 字,大约阅读时间需要 1 分钟。
为了简化给定的Unix风格文件路径,我想到使用一个栈来模拟层次关系。每个栈元素代表一个目录的部分路径。这样,当遇到'..'时,表示上移层级,弹出栈顶元素;而遇到'.'时,则表示进入当前层的子目录,添加相应路径。
首先,对路径进行预处理,确保路径不会以'/'结尾。例如,路径"/home/"可以简化为"/home"。然后,将路径按'/'分割为各个部分,逐个处理:
最终,栈中包含的路径部分按顺序连接起来即为简化后的路径。例如,处理路径"/a/./b/../../c/"的过程:
连接栈元素得到"/a/c"。但如果没有遇到'..'且栈为空,比如路径为"/../",则返回"/"。
通过这种方法,可以有效地处理各种路径简化情况,包括避免多个连续'/'和层级跳转。
转载地址:http://klgyk.baihongyu.com/