本题源自leetcode 388
----------------------------------------------------
思路: 1 用一个dp数组记录每一层最大长度。然后遍历字符串,遇到 \t 表明层数, \n表示 新的一层。然后开始统计文件名长度。
代码:
int lengthLongestPath(string input) {
int n = input.size();
if(n == 0)
return 0;
int count = 0;
int level = 1;
int isFile = false;
int res = 0;
vector<int> dp(20,0); //记录当前目录层的最大长度
for(int i = 0; i < n; i++){
while(i < n && input[i] == '\t'){ //记录当前是第几层目录
level++;
i++;
}
while(i < n && input[i] != '\n'){ //统计文件名长度
if(input[i] == '.')
isFile = true;
count++;
i++;