题目描述(中等题目)
- 输入”/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的用法