leetcode -- 388. Longest Absolute File Path

来源:互联网 发布:收集区域手机号码软件 编辑:程序博客网 时间:2024/06/05 00:28

使用了一个map记录文件位置,o(n)的方案实现,没有出现额外的字符串匹配过程,4ms解决

func lengthLongestPath(input string) int {    flag := make(map[int]int)    tmp := 0    path := ""    str := ""    isFile := false    max := 0    flag[-1] = 0    //  maxStr := ""    input += "\n"    for i := 0; i < len(input); i++ {        switch input[i] {        case '\n':            offset, ok := flag[tmp-1]            if !ok {                return -1            }            path = path[0:offset] + str            if !isFile {                path += "/"            } else {                if len(path) > max {                    max = len(path)                    //                  maxStr = path                }                isFile = false            }            flag[tmp] = len(path)            str = ""            tmp = 0        case '\t':            tmp++        case '.':            isFile = true            fallthrough        default:            str += string(input[i])        }    }    //  println(maxStr, len(maxStr))    return max}
0 0
原创粉丝点击