zoukankan      html  css  js  c++  java
  • simplify Path

    package cn.edu.xidian.sselab.string;

    import java.util.Arrays;
    import java.util.HashSet;
    import java.util.Set;
    import java.util.Stack;

    /**
     *
     * @author zhiyong wang
     * title: simplify Path
     * content:
     * Given an absolute path for a file (Unix-style), simplify it.
     *
     * For example,
     * path = "/home/", => "/home"
     * path = "/a/./b/../../c/", => "/c"
     *
     */
    public class SimplifyPath {

        //弹出,匹配问题,想到用栈来实现,同时遇到分割问题想到split函数
        //看了Deque源码才发现,只有push() 与pop()方法是stack方法。所以这里可以用做栈
        public String simplifyPath(String path){    
                //下面这两行是等价的
    //            Deque<String> stack = new LinkedList<String>();
                Stack<String> stack = new Stack();
                Set set = new HashSet<>(Arrays.asList("..",".",""));//这行代码学习一下
                for(String str : path.split("/")){
                    if(str.equals("..") && !stack.isEmpty()) stack.pop();
                    else if(!set.contains(str)) stack.push(str);
                }
                String res = "";
                
                while(!stack.isEmpty()){
                    res = "/" + stack.pop() + res;
                }
                return res.isEmpty() ? "/" : res;
        }
    }

  • 相关阅读:
    贪吃蛇 666
    安装postgresql
    linux CentOS6.5 yum安装mysql 5.6
    centos--git搭建之Gogs安装
    查看mysql 默认端口号和修改端口号
    centos之mysql安装配置使用
    流媒体服务器SRS部署
    vue用webpack打包时引入es2015插件
    log4j2的log输出到tomcat/logs目录下及使用(转)
    log4j2的配置文件log4j2.xml笔记
  • 原文地址:https://www.cnblogs.com/wzyxidian/p/5229322.html
Copyright © 2011-2022 走看看