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".
     
    Solution:
    考察Java String的split function。
     
    1. 先用/来split string
    2. 然后看每一小段,若是”.”或者是“”(说明两个/连着),不入栈;若是”..”,pop;若是正常,push.
     
     1 public class Solution {
     2     public String simplifyPath(String path) {
     3         if(path==null||path.length()==0)
     4             return "";
     5         if(path.equals("/"))
     6             return "/";
     7         String[] tokens=path.split("/");
     8         Stack<String> stack=new Stack<String>();
     9         
    10         for(int i=0;i<tokens.length;++i){
    11             if(tokens[i].equals("..")){
    12                 if(!stack.empty())
    13                     stack.pop();
    14                 else
    15                     continue;
    16             }else if(tokens[i].equals(".")||tokens[i].length()==0){
    17                 continue;
    18             }else{
    19                 stack.push(tokens[i]);
    20             }
    21         }
    22         
    23         Stack<String> stack2=new Stack<String>();
    24         String result=new String("");
    25         
    26         if(stack.empty())
    27             return "/";
    28         
    29         while(!stack.empty())
    30             stack2.push(stack.pop());
    31         while(!stack2.empty()){
    32             result+="/";
    33             result+=stack2.pop();
    34         }
    35         return result;   
    36     }
    37 }
  • 相关阅读:
    Domain Logic approaches
    Comparing Spring AOP and AspectJ
    CDI Features
    Java Design Patterns
    第二阶段:代码片段
    第一阶段:学生在线系统需求分析报告
    load data语句实验报告
    Sping AOP Capabilities and Goals
    Java Design Patterns
    CDI Features
  • 原文地址:https://www.cnblogs.com/Phoebe815/p/3996438.html
Copyright © 2011-2022 走看看