0%

leetcode之旅-71-简化路径

题目描述(中等题目)

题目描述

  • 输入”/a/../../b/../c//.//“输出“/c”
  • 不考虑”./d”.”../dfd.df” 这种两种情况

我的解法

1
class Solution {
2
    public String simplifyPath(String path) {
3
        Stack<String> stack = new Stack<String>();
4
        for(String ss:path.split("/"))
5
        {
6
            if(!ss.equals("..")&&!ss.equals(".")&&!ss.equals(""))
7
                 stack.push(ss);
8
            else if(ss.equals("..")&&!stack.empty())
9
                stack.pop();
10
        }
11
        String out="";
12
        while(!stack.empty())
13
        {
14
            out = "/"+stack.pop()+out;
15
        }
16
        if(out.equals(""))
17
        return "/";
18
        return out;
19
    }
20
}
  • 时间复杂度:O(n)
  • 空间复杂度:O(n)

扩展

String的用法

Stack的用法