zoukankan      html  css  js  c++  java
  • 每日一题力扣388

    假设文件系统如下图所示:

    这里将 dir 作为根目录中的唯一目录。dir 包含两个子目录 subdir1 和 subdir2 。subdir1 包含文件 file1.ext 和子目录 subsubdir1;subdir2 包含子目录 subsubdir2,该子目录下包含文件 file2.ext 。

    在文本格式中,如下所示(⟶表示制表符):

    dir
    ⟶ subdir1
    ⟶ ⟶ file1.ext
    ⟶ ⟶ subsubdir1
    ⟶ subdir2
    ⟶ ⟶ subsubdir2
    ⟶ ⟶ ⟶ file2.ext
    如果是代码表示,上面的文件系统可以写为 "dir\n\tsubdir1\n\t\tfile1.ext\n\t\tsubsubdir1\n\tsubdir2\n\t\tsubsubdir2\n\t\t\tfile2.ext" 。'\n' 和 '\t' 分别是换行符和制表符。

    文件系统中的每个文件和文件夹都有一个唯一的 绝对路径 ,即必须打开才能到达文件/目录所在位置的目录顺序,所有路径用 '/' 连接。上面例子中,指向 file2.ext 的绝对路径是 "dir/subdir2/subsubdir2/file2.ext" 。每个目录名由字母、数字和/或空格组成,每个文件名遵循 name.extension 的格式,其中名称和扩展名由字母、数字和/或空格组成。

    给定一个以上述格式表示文件系统的字符串 input ,返回文件系统中 指向文件的最长绝对路径 的长度。 如果系统中没有文件,返回 0。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/longest-absolute-file-path
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    class Solution:
        def lengthLongestPath(self, input: str) -> int:
            n_path = input.split('\n')
            t_str = '\t'
            path_num = []
            file_path = []
            for i in range(len(n_path)):
                num_t = n_path[i].count(t_str)
                n_path[i] = n_path[i].replace(t_str, '')#把第i个位置如果出现\T就给替换掉
                path_num.append(num_t)#把\t的数量加入
            for i in range(len(n_path)):
                if '.' in n_path[i]:#带点的就是最后的文件
                    file = n_path[i]#先存下文件名
                    p = path_num[i]#找到文件名的这里有几个t,它之前的路径肯定是比它少,而且每个都比他少
                    while i > 0:
                        if path_num[i - 1] == p - 1:#找到前一个比他少的t才替换路径
                            file = n_path[i - 1] + '/' + file#替换路径
                            p = p - 1#数量减少
                        i -= 1#再看前一个的
                    file_path.append(file)
            if not file_path:
                return 0
            max = 0
            for i in range(len(file_path)):#返回长度,只有长度大于0才返回长度,否则就是0
                if len(file_path[i]) > max:
                    max = len(file_path[i])
            return max
  • 相关阅读:
    2019-08-01 Ajax实现从数据库读取表
    2019-08-01 JQuery事件
    2019-07-31 Jquery
    2019-07-30 ThinkPHP文件上传
    2019-07-29 ThinkPHP简单的增删改查
    2017-07-26 ThinkPHP简单使用
    python——虚拟环境之virtualenvwrapper-win(windows10,64位)
    python——虚拟环境之virtualenv(windows10,64位)
    python——python3.6环境搭建(Windows10,64位)
    使用poi进行excel下载
  • 原文地址:https://www.cnblogs.com/liuxiangyan/p/14548735.html
Copyright © 2011-2022 走看看