Middle-题目115:71. Simplify Path

原创 2016年05月31日 20:06:22

题目原文:
Given an absolute path for a file (Unix-style), simplify it.

For example,
path = “/home/”, => “/home”
path = “/a/./b/../../c/”, => “/c”
题目大意:
化简一个Unix格式的路径。
题目分析:
显然用堆栈。根据hint里面提到的边界情况做以下处理:
(1) 对多个/和.不作处理
(2) 对..则弹出栈顶元素,如果栈空(已经是根路径)则不处理
(3) 将两个/之间的子串压入堆栈
最后遍历栈,组成最后的目录。如果栈空则输出’/’。
源码:(language:java)

public class Solution {
    public String simplifyPath(String path) {
        String[] paths = path.split("/");
        List<String> list = new LinkedList<String>();
        Stack<String> stack = new Stack<String>();
        for (String str : paths) {
            if (str.equals(""))
                continue;
            else if (str.equals("..")) {
                if(!stack.isEmpty())
                    stack.pop();
                continue;
            }
            else if (str.equals("."))
                continue;
            else
                stack.add(str);
        }
        String result = "";
        for(int i = 0;i<stack.size();i++) {
            result=result+"/"+stack.get(i);
        }
        if(result=="")
            result+="/";
        return result;
    }
}

成绩:
12ms,beats 44.53%,众数12ms,18.84%

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

LeetCode71 Simplify Path java题解

题目: Given an absolute path for a file (Unix-style), simplify it. For example, path = "/home...
  • u012249528
  • u012249528
  • 2015年07月01日 08:11
  • 1227

Leetcode 71. Simplify Path 简化路径 解题报告

1 解题思想题目就是把一个Unix或者类Unix系统下的一个地址进行简化(找到其最精简的地址)。简化的示例可以看原题当当中。这道题要使用一个栈,来保存当前的路径状况。我们首先需要按照“/”将地址进行分...
  • MebiuW
  • MebiuW
  • 2016年05月13日 23:52
  • 2313

LeetCode --- 71. Simplify Path

题目链接:Simplify Path Given an absolute path for a file (Unix-style), simplify it. For example, path...
  • makuiyu
  • makuiyu
  • 2015年03月20日 21:46
  • 4901

leetcode_c++:栈:Simplify Path(071)

Given an absolute path for a file (Unix-style), simplify it.For example, path = “/home/”, => “/home...
  • mijian1207mijian
  • mijian1207mijian
  • 2016年07月20日 16:11
  • 188

71. Simplify Path(Python3)

71. Simplify Path(Python3) 题目 Given an absolute path for a file (Unix-style), simplify it. For ex...
  • grape875499765
  • grape875499765
  • 2018年01月28日 09:41
  • 29

LeetCode71——Simplify Path

LeetCode71——Simplify Path 依然是恶心的字符串处理,倒不是有多难,是你不知道他有哪些Sample Input,你得把所有的情况考虑进去。。。 我在做的时候就没有考虑非法输入...
  • zhangxiao93
  • zhangxiao93
  • 2015年11月03日 09:24
  • 602

leetcode 71. Simplify Path

题意 将linux下的路径名转换成一个与路径等价但最短的路径名 题解 使用栈来记录普通路径名(遇到“.”则跳过;“..”则出栈一个普通路径名) 代码class Solution { publi...
  • u010560443
  • u010560443
  • 2016年04月16日 21:18
  • 155

[Leetcode] 71. Simplify Path

Given an absolute path for a file (Unix-style), simplify it. For example, path = "/home/", => "/...
  • u013897903
  • u013897903
  • 2015年03月25日 06:00
  • 271

71. Simplify Path(stack)

题目: Given an absolute path for a file (Unix-style), simplify it. For example, path = "/home/", =>...
  • u011539372
  • u011539372
  • 2016年09月23日 22:06
  • 62

Leetcode 71. Simplify Path

Given an absolute path for a file (Unix-style), simplify it. For example, path = "/home/", => "/...
  • Hanwenwangad
  • Hanwenwangad
  • 2016年01月25日 11:25
  • 114
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Middle-题目115:71. Simplify Path
举报原因:
原因补充:

(最多只允许输入30个字)