Advertisement

笔试题:处理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)

还没有任何评论哟~