zoukankan      html  css  js  c++  java
  • leetcode--Simplify Path

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

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

    click to show corner cases.

    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".
    public class Solution {
        public String simplifyPath(String path) {
            StringBuffer pathaccu= new StringBuffer();
            if(path == null || path.length() == 0)
                return pathaccu.toString();
    
            String[] splits = path.split("/");
            Stack<String> st = new Stack<String>();
            for(int i = 0; i < splits.length; ++i){
                if(splits[i].equals("..")){
                    if(!st.empty())
                        st.pop();
                }
                else if(splits[i].equals(".") || splits[i].equals("")){
                    //do nothing
                }
                else
                    st.push(splits[i]);
            }
            if(st.empty())
                pathaccu.append("/");
            else{
                while(!st.empty())
                    pathaccu.insert(0, "/"+st.pop());
                //pathaccu.insert(0,"/");
            }
            return pathaccu.toString();
        }
    }
    

      

  • 相关阅读:
    LeetCode--Insert Interval
    LeetCode--Surrounded Regions
    LeetCode--Container With Most Water
    LeetCode--Permutation Sequence
    NYOJ---540奇怪的排序
    NYOJ-858下三角矩阵
    素数筛选法
    NYOJ----776删除元素
    矩阵快速幂
    神奇算式
  • 原文地址:https://www.cnblogs.com/averillzheng/p/3612811.html
Copyright © 2011-2022 走看看