当前位置: 首页 > article >正文

C语言 | Leetcode C语言题解之第388题文件的最长绝对路径

题目:

题解:

#define MAX(a, b) ((a) > (b) ? (a) : (b))

int lengthLongestPath(char * input){
    int n = strlen(input);
    int pos = 0;
    int ans = 0;
    int * level = (int *)malloc(sizeof(int) * (n + 1));
    memset(level, 0, sizeof(int) * (n + 1));

    while (pos < n) {
        /* 检测当前文件的深度 */
        int depth = 1;
        while (pos < n && input[pos] == '\t') {
            pos++;
            depth++;
        }
        /* 统计当前文件名的长度 */
        bool isFile = false;  
        int len = 0;   
        while (pos < n && input[pos] != '\n') {
            if (input[pos] == '.') {
                isFile = true;
            }
            len++;
            pos++;
        }
        /* 跳过当前的换行符 */
        pos++;

        if (depth > 1) {
            len += level[depth - 1] + 1;
        }
        if (isFile) {
            ans = MAX(ans, len);
        } else {
            level[depth] = len;
        }
    }
    free(level);
    return ans;
}

http://www.kler.cn/a/291201.html

相关文章:

  • FPGA的 基本结构(Xilinx 公司Virtex-II 系列FPGA )
  • 攻防世界 ics-07
  • ADO.NET知识总结3---SqlCommand命令对象
  • arcgisPro加载CGCS2000天地图后,如何转成米单位
  • Redis 笔记(二)-Redis 安装及测试
  • 继承(6)
  • windows中命令行界面连接虚拟机(CentOS9)
  • Unix与Linux的关系
  • 公采/企业采购中心数据档案自动刻录归档管理平台
  • 博物馆实景复刻如何实现?需要哪些技术?
  • 基于人工智能的语音识别系统
  • 【Python机器学习】卷积神经网络(CNN)的工具包
  • 小学生护眼台灯什么牌子好?五款性价比高的学生护眼台灯推荐
  • 【unity实战】利用Root Motion+Blend Tree+Input System+Cinemachine制作一个简单的角色控制器
  • Hive时间窗口函数保姆级教程(最全解析、应用和优化)(持续更新)
  • 87、k8s之污点
  • Python实战项目:天气数据爬取+数据可视化(完整代码)_python爬虫实战
  • js逆向--绕过debugger(二)
  • UE5学习笔记19-服务器的更新频率,根骨骼旋转节点
  • Docker使用tensorflow/serving镜像部署模型
  • 第二证券:有风险!筹码集中股出炉,这10股股东数骤降
  • Java 面试题:TCP重传机制与拥塞控制 --xunznux
  • 在VitePress中进行页面链接:最佳实践与实例
  • 90分钟实现一门编程语言——极简解释器教程
  • 巧用 HTML 列表:<ul>、<ol>、<dl>的实用指南
  • 美团转正成功,实习经验大分享!