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

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

题目:

题解:

func lengthLongestPath(input string) (ans int) {
    n := len(input)
    level := make([]int, n+1)
    for i := 0; i < n; {
        // 检测当前文件的深度
        depth := 1
        for ; i < n && input[i] == '\t'; i++ {
            depth++
        }

        // 统计当前文件名的长度
        length, isFile := 0, false
        for ; i < n && input[i] != '\n'; i++ {
            if input[i] == '.' {
                isFile = true
            }
            length++
        }
        i++ // 跳过换行符

        if depth > 1 {
            length += level[depth-1] + 1
        }
        if isFile {
            ans = max(ans, length)
        } else {
            level[depth] = length
        }
    }
    return
}

func max(a, b int) int {
    if b > a {
        return b
    }
    return a
}

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

相关文章:

  • MySQL 数据库 :SQL 语句规约(不得使用外键与级联,一切外键概念必须在应用层解决。)
  • 数字小偷:2025年全面防护指南
  • Sentinel配置流控规则详解
  • Spring Boot 实战篇(四):实现用户登录与注册功能
  • 频域增强通道注意力机制EFCAM模型详解及代码复现
  • 增广卡尔曼滤波AKF的要点分析
  • STM32:TIM定时中断配置的最全库函数讲解笔记
  • 微博视频无水印下载的方法
  • 点餐收银小程序
  • mybatis自定义复杂条件拼接
  • element-ui 表单Cannot read property ‘indexOf‘ of undefined
  • 智能体与在线实用工具:协同并进,提升生活效率
  • 安达发|户外设备制造APS排程的多层级BOM订单拉动
  • 逆向中的游戏-入土为安的第二十五天
  • matlab2024a/2023/2022/2020/matlab2019 如何plot画局部放大图(已解决)
  • Redis的内存淘汰策略—— volatile-random
  • unity的语言问题记录(委托相关)
  • 《从C/C++到Java入门指南》- 26.record 类+多态
  • python 字典怎么提取value
  • 测试框架到底是什么,如何定义?
  • 安防管理平台工业排污检测视频智能分析工业排污检测算法源码全套方案
  • Java项目: 基于SpringBoot+mysql网上订餐系统分前后台(含源码+数据库+开题报告+PPT+毕业论文)
  • Electron基础(一) 实现最大化、最小化、关闭窗口功能
  • node.js使用express框架实现api接口开发(从零开始,超简单可直接复制)
  • ES6中js文件执行顺序
  • 第二证券:两市成交不足5000亿元 小盘成长股逆势活跃