leetcode_388 Longest Absolute File Path

原创 2016年08月30日 12:40:15
  • 题目分析

    给定一个字符串,表示文件系统的目录结构。统计该目录结构中的一个文件的绝对路径的最大长度。

  • 解题思路

    利用\n来分割文件夹和文件名,利用\t来统计此时文件夹或文件对应的层数,然后利用哈希表来建立深度和当前深度的绝对路径长度之间的映射。

  • 实现程序

int lengthLongestPath(string input)
{
    int result = 0;
    int size = input.size();
    int level = 0;
    map<int, int> mp;
    mp.insert(make_pair(0, 0));
    for (int i = 0; i < size; i++)
    {
        int start = i;
        // 用于统计文件夹或文件名长度
        while (i < size && input[i] != '\n' && input[i] != '\t')
            i++;
        if (i >= size || input[i] == '\n')
        {
            // 分割文件夹名和文件名
            string t = input.substr(start, i - start);
            // 包含点,则说明是文件,此时更新长度
            if (t.find('.') != string::npos)
            {
                result = max(result, mp[level] + (int)t.size());
            }
            // 不包含点,则说明是文件夹,此时记录深度和长度
            else
            {
                level++;
                mp[level] = mp[level - 1] + t.size() + 1;
            }
            level = 0;
        }
        // 统计对应的层次
        else
        {
            level++;
        }
    }
    return result;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

【Leetcode】Longest Absolute File Path

题目链接:https://leetcode.com/problems/longest-absolute-file-path/ 题目: Suppose we abstract our file sy...
  • yeqiuzs
  • yeqiuzs
  • 2016年08月30日 14:47
  • 2235

[leetcode] 388. Longest Absolute File Path 解题报告

题目链接: https://leetcode.com/problems/longest-absolute-file-path/ Suppose we abstract our file sy...

LeetCode—388. Longest Absolute File Path

Longest Absolute File Path思路:非常恶心的题目,测试样例提供一个不从某个目录开始,而是从多个目录开始的样例。。题目很简单,注意各种奇怪的案例即可。 ...

388. Longest Absolute File Path

Suppose we abstract our file system by a string in the following manner: The string "dir\n\tsubdir1...

388. Longest Absolute File Path

388. Longest Absolute File Path Suppose we abstract our file system by a string in the followin...

388. Longest Absolute File Path

Suppose we abstract our file system by a string in the following manner: The string "dir\n\tsubdi...

leetcode -- 388. Longest Absolute File Path

使用了一个map记录文件位置,o(n)的方案实现,没有出现额外的字符串匹配过程,4ms解决func lengthLongestPath(input string) int { flag := ...
  • kolonse
  • kolonse
  • 2016年08月25日 18:09
  • 164

Android4.4以上图片地址Uri转换成绝对路径的工具类

public class GetPathFromUri4kitkat { @SuppressLint("NewApi") public static String getPath(fi...

Tomcat从零开始(八)Lifecycle

第八课: Catalina是由很多部分组成的,所以当服务器启动的时候,tomcat需要去调用servlet的init方法和初始化容器等一系列操作,而停止的时候,也需要调用servlet的destor...

[Leetcode]388. Longest Absolute File Path

[Leetcode]388. Longest Absolute File Path
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode_388 Longest Absolute File Path
举报原因:
原因补充:

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