电子商务网站的功能分析,东莞专业网站推广怎么做,淘宝请人做网站被骗,椒江做网站的公司1. 题目
假设我们以下述方式将我们的文件系统抽象成一个字符串:
字符串 dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext 表示:
dirsubdir1subdir2file.ext目录 dir 包含一个空的子目录 subdir1 和一个包含一个文件 file.ext 的子目录 subdir2 。
字符串 dir\n…1. 题目
假设我们以下述方式将我们的文件系统抽象成一个字符串:
字符串 dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext 表示:
dirsubdir1subdir2file.ext目录 dir 包含一个空的子目录 subdir1 和一个包含一个文件 file.ext 的子目录 subdir2 。
字符串 dir\n\tsubdir1\n\t\tfile1.ext\n\t\tsubsubdir1\n\tsubdir2\n\t\tsubsubdir2\n\t\t\tfile2.ext 表示:
dirsubdir1file1.extsubsubdir1subdir2subsubdir2file2.ext目录 dir 包含两个子目录 subdir1 和 subdir2。 subdir1 包含一个文件 file1.ext 和一个空的二级子目录 subsubdir1。 subdir2 包含一个二级子目录 subsubdir2 其中包含一个文件 file2.ext。
我们致力于寻找我们文件系统中文件的最长 (按字符的数量统计) 绝对路径。例如在上述的第二个例子中最长路径为 dir/subdir2/subsubdir2/file2.ext其长度为 32 (不包含双引号)。
给定一个以上述格式表示文件系统的字符串返回文件系统中文件的最长绝对路径的长度。 如果系统中没有文件返回 0。
说明: 文件名至少存在一个 . 和一个扩展名。 目录或者子目录的名字不能包含 .。 要求时间复杂度为 O(n) 其中 n 是输入字符串的大小。
请注意如果存在路径 aaaaaaaaaaaaaaaaaaaaa/sth.png 的话那么 a/aa/aaa/file1.txt 就不是一个最长的路径。 来源力扣LeetCode 链接https://leetcode-cn.com/problems/longest-absolute-file-path 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
用一个数组记录到当前层的字符个数利用前缀累加\t的个数表示层数注意字符个数也包括\t
测试样例
dir\n file.txt
di r\n file.txt
dir\n file.txt
a.aaa\n\tfile.txt
dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext
dir\n\tsubdir1\n\t\tfile1.ext\n\t\tsubsubdir1\n\tsubdir2\n\t\tsubsubdir2\n\t\t\tfile2.extclass Solution {
public:int lengthLongestPath(string input) {int maxlen0, i, lv 0, count0;vectorint len(50,0);bool foundfile false;for(i 0; i input.size(); i){if(input[i]\n){len[lv] lv0 ? len[lv-1]count : count;//利用前缀求当前长度if(foundfile)//找到文件了{maxlen max(maxlen, len[lv]lv);//更新最大长度lv为\t个数foundfile false;}lv 0;count 0;}else if(input[i]\t)lv;else{if(i0 input[i-1]. (isalpha(input[i])||isdigit(input[i])))foundfile true;count;}}len[lv] lv0 ? len[lv-1]count : count;if(foundfile)maxlen max(maxlen, len[lv]lv);return maxlen;}
};0 ms 6.6 MB