zoukankan      html  css  js  c++  java
  • LeetCode

    题目:

    Given an absolute path for a file (Unix-style), simplify it.

    For example,
    path = "/home/", => "/home"
    path = "/a/./b/../../c/", => "/c"

    Corner Cases:

      • Did you consider the case where path = "/../"?
        In this case, you should return "/".
      • Another corner case is the path might contain multiple slashes '/' together, such as "/home//foo/".
        In this case, you should ignore redundant slashes and return "/home/foo".

    思路:

    线分割,然后在stack里进行操作

    package ds;
    
    import java.util.Stack;
    
    public class SimplifyPath {
    
        public String simplifyPath(String path) {
            String[] names = path.split("/");
            Stack<String> s = new Stack<String>();
            for (int i = 0; i < names.length; ++i) {
                String name = names[i];
                switch (name) {
                    case "":
                    case ".":
                        break;
                    case "..":
                        if (!s.isEmpty()) s.pop();
                        break;
                    default:
                        s.push(name);
                        break;
                }
            }
            
            if (s.isEmpty()) return "/";
            StringBuilder res = new StringBuilder();
            while (!s.isEmpty()) {
                res.insert(0, "/" + s.pop());
            }
            
            return res.toString();
        }
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String path = "/a/b/c////d/e/";
            SimplifyPath s = new SimplifyPath();
            System.out.println(s.simplifyPath(path));
        }
    
    }
  • 相关阅读:
    golang的time包
    golang的defer
    vscode出现卡在setting up workspace loading packages问题
    golang的module管理与使用go mod
    vscode常见插件及使用
    vscode的settings.json配置文件
    vscode的launch.json配置文件
    vscode搭建golang环境
    MacBook初使用
    Git-错误汇总
  • 原文地址:https://www.cnblogs.com/null00/p/5091813.html
Copyright © 2011-2022 走看看