首页 > 其他 > 详细

力扣第71题 简化路径,易理解。

时间:2020-06-02 09:30:27      阅读:40      评论:0      收藏:0      [点我收藏+]
class Solution {
    public String simplifyPath(String path) {
        String[] lu = path.split("/+");//正则,以一个或多个“/”进行切割。
        Stack<String> sta = new Stack<>();
        // System.out.println(Arrays.toString(lu));
        String res = "";
        for(int i = 0;i < lu.length;i++){
            // System.out.println(lu[i]);
            if(lu[i] == ""){
                continue;
            }else if(lu[i].equals(".")){
                continue;
            }else if(lu[i].equals("..")){//返回上一级,就删除最后一个进入栈的元素
                if(!sta.empty()){
                    sta.pop();
                }          
            }else{
                sta.push(lu[i]);//进入栈
            }
            // System.out.println(res);
        }
        //拼接路径
        for(String s: sta){
            res += "/"+s;
        }
        //查看最后一个字符是否为“/”,是就删除。
        int len = res.length();
        if(len > 1 && res.charAt(len-1) == ‘/‘){
            res = res.substring(0, res.length()-1);
        }
        return ("/"+res).replace("///","/").replace("//","/");
    }
}

力扣第71题 简化路径,易理解。

原文:https://www.cnblogs.com/ztabk/p/13028858.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!