1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-10 18:48:13 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/文件的最长绝对路径 [longest-absolute-file-path].html
2022-03-29 12:43:11 +08:00

69 lines
3.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p>假设有一个同时存储文件和目录的文件系统。下图展示了文件系统的一个示例:</p>
<p><img alt="" src="https://assets.leetcode.com/uploads/2020/08/28/mdir.jpg" style="height: 142px; width: 300px;" /></p>
<p>这里将 <code>dir</code> 作为根目录中的唯一目录。<code>dir</code> 包含两个子目录 <code>subdir1</code><code>subdir2</code><code>subdir1</code> 包含文件 <code>file1.ext</code> 和子目录 <code>subsubdir1</code><code>subdir2</code> 包含子目录 <code>subsubdir2</code>,该子目录下包含文件 <code>file2.ext</code></p>
<p>在文本格式中,如下所示(⟶表示制表符)</p>
<pre>
dir
⟶ subdir1
⟶ ⟶ file1.ext
⟶ ⟶ subsubdir1
⟶ subdir2
⟶ ⟶ subsubdir2
⟶ ⟶ ⟶ file2.ext
</pre>
<p>如果是代码表示,上面的文件系统可以写为 <code>"dir\n\tsubdir1\n\t\tfile1.ext\n\t\tsubsubdir1\n\tsubdir2\n\t\tsubsubdir2\n\t\t\tfile2.ext"</code><code>'\n'</code><code>'\t'</code> 分别是换行符和制表符。</p>
<p>文件系统中的每个文件和文件夹都有一个唯一的 <strong>绝对路径</strong> ,即必须打开才能到达文件/目录所在位置的目录顺序,所有路径用 <code>'/'</code> 连接。上面例子中,指向 <code>file2.ext</code><strong>绝对路径</strong><code>"dir/subdir2/subsubdir2/file2.ext"</code> 。每个目录名由字母、数字和/或空格组成,每个文件名遵循 <code>name.extension</code> 的格式,其中<meta charset="UTF-8" />&nbsp;<code>name</code>&nbsp;<meta charset="UTF-8" />&nbsp;<code>extension</code>由字母、数字和/或空格组成。</p>
<p>给定一个以上述格式表示文件系统的字符串 <code>input</code> ,返回文件系统中&nbsp;<em>指向&nbsp;<strong>文件</strong>&nbsp;<strong>最长绝对路径</strong> 的长度</em>&nbsp;。 如果系统中没有文件,返回&nbsp;<code>0</code></p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<img alt="" src="https://assets.leetcode.com/uploads/2020/08/28/dir1.jpg" style="height: 101px; width: 200px;" />
<pre>
<strong>输入:</strong>input = "dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext"
<strong>输出:</strong>20
<strong>解释:</strong>只有一个文件,绝对路径为 "dir/subdir2/file.ext" ,路径长度 20
</pre>
<p><strong>示例 2</strong></p>
<img alt="" src="https://assets.leetcode.com/uploads/2020/08/28/dir2.jpg" style="height: 151px; width: 300px;" />
<pre>
<strong>输入:</strong>input = "dir\n\tsubdir1\n\t\tfile1.ext\n\t\tsubsubdir1\n\tsubdir2\n\t\tsubsubdir2\n\t\t\tfile2.ext"
<strong>输出:</strong>32
<strong>解释:</strong>存在两个文件:
"dir/subdir1/file1.ext" ,路径长度 21
"dir/subdir2/subsubdir2/file2.ext" ,路径长度 32
返回 32 ,因为这是最长的路径</pre>
<p><strong>示例 3</strong></p>
<pre>
<strong>输入:</strong>input = "a"
<strong>输出:</strong>0
<strong>解释:</strong>不存在任何文件</pre>
<p><strong>示例 4</strong></p>
<pre>
<strong>输入:</strong>input = "file1.txt\nfile2.txt\nlongfile.txt"
<strong>输出:</strong>12
<strong>解释:</strong>根目录下有 3 个文件。
因为根目录中任何东西的绝对路径只是名称本身,所以答案是 "longfile.txt" ,路径长度为 12
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= input.length &lt;= 10<sup>4</sup></code></li>
<li><code>input</code> 可能包含小写或大写的英文字母,一个换行符 <code>'\n'</code>,一个制表符 <code>'\t'</code>,一个点 <code>'.'</code>,一个空格 <code>' '</code>,和数字。</li>
</ul>