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));
        }
    
    }
  • 相关阅读:
    js学习
    console用法
    Oracle 数据库加密
    Oracle 内存结构
    Oracle 锁
    Oracle 索引
    怎么理解“平均负载”
    Oracle分区表
    Oracle 数据库表(常见的表)
    PostgreSQL 监控磁盘使用
  • 原文地址:https://www.cnblogs.com/null00/p/5091813.html
Copyright © 2011-2022 走看看