zoukankan      html  css  js  c++  java
  • 最长的文件路径 Longest Absolute File Path

    2018-07-30 22:05:52

    问题描述:

    问题求解:

    本题个人感觉还是挺有意思的,题目要求的是最长的文件路径,其实是需要keep tracking路径长度,如果出现文件则需要进行比较,看是否为当前的最大长度。

    难点就在于如何keep tracking,不妨将文件的路径旋转90度,那么就可以看到很明显的层次结构,我们可以使用一个栈来维护不同层次的信息,想到这里本题其实基本已经解决了一大半,剩下的就是层次关系的判断,显然和 有关,那么对这个再进行分析,就很快可以得到解。

    这里需要注意的是 是算作一个字符的,并非两个字符。

        public int lengthLongestPath(String input) {
            int res = 0;
            String[] layers = input.split("
    ");
            Stack<Integer> stack = new Stack<>();
            stack.push(0);
            for (String layer : layers) {
                int numOfTab = layer.lastIndexOf("	") + 1;
                int level = numOfTab + 1;
                while (level < stack.size()) stack.pop();
                int curLen = stack.peek() + layer.length() - numOfTab + 1;
                stack.push(curLen);
                if (layer.contains(".")) res = Math.max(res, curLen - 1);
            }
            return res;
        }
    
  • 相关阅读:
    LuoGu P1006 传纸条
    LuoGu P1083 借教室
    动态规划-区间dp-Palindrome Removal
    咕果
    直径问题 Diameter Problems
    Contest 161
    ALBert
    Focal Loss
    Contest 159
    Contest 160
  • 原文地址:https://www.cnblogs.com/hyserendipity/p/9393157.html
Copyright © 2011-2022 走看看