笔试题:处理Unix路径(简化版)
发布时间
阅读量:
阅读量
对Unix风格路径进行简化时,需处理诸如“/../”、“//”以及“/./”等特殊情形。
输入描述:
提供一个字符串,用于表示Unix风格的路径。
输出描述:
输出经过简化的Unix风格路径。
示例1:
输入:"/home/"
输出:"/home"
示例2:
输入:"/a/./b/../../c/"
输出:"/c"
分析:
在路径中,“..”用于表示进入上级目录(若当前位于根目录则忽略此操作),“.”则代表当前目录。为实现该功能,可采用栈结构来存储路径信息。在处理字符串过程中,需遵循以下规则:
(1)若出现多个连续的“/”,仅保留其中一个即可;
(2)当遇到的路径名既不是“.”也不是“..”,则将其压入栈中;
(3)若遇到“..”且栈非空,则弹出栈顶元素;否则不作任何处理。
完成字符串遍历后,依次从栈中取出元素,并以“/”作为分隔符进行拼接。需要注意的是,拼接顺序应为从后往前进行。
代码如下:
import java.util.Scanner;
import java.util.Stack;
public class SimplePath {
public static void main(String[] args) {
S
全部评论 (0)
还没有任何评论哟~
