2022-4-20 每日一题-leetcode

题目链接:https://leetcode-cn.com/problems/longest-absolute-file-path/

个人题解:栈模拟,找到每一个换行符即可

代码:

class Solution {
public:
    int lengthLongestPath(string input) {
        stack<int> stk;
        int res=0;

        for(int i=0,sum=0;i<input.size();i++)
        {
            int level=0;
            while(i<input.size() && input[i]=='\t') level++,i++;
            while(stk.size()>level) sum-=stk.top(),stk.pop();

            int j=i;
            while(j<input.size() && input[j]!='\n') j++;

            int len=j-i;
            stk.push(len),sum+=len;
            if(input.substr(i,len).find('.')!=-1) res=max(res,sum+(int)stk.size()-1);
            
            i=j;
        }

        return res;
    }
};

image

posted @ 2022-04-20 17:12  黑VS白-清墨  阅读(12)  评论(0)    收藏  举报