美文网首页
简化路径

简化路径

作者: hookover | 来源:发表于2019-03-01 19:12 被阅读0次

思路一

使用栈来处理
遇到 ".." 出栈
遇到 "." 不处理
其它情况,进栈

最后拼接字符串

Leecode Golang 用时4ms内存占用4M

func simplifyPath(path string) string {
    slice := make([]string, 0)
    pathArr := []rune(path)
    strLen := len(pathArr)
    m, n := 0, 0
    var resString string

    for i, j := 0, 0; j < strLen; j++ {
        if i < j && (string(pathArr[j]) == "/" || j == strLen-1) {
            m, n = i, j

            if string(pathArr[i]) == "/" {
                m ++
            }
            if j == strLen-1 && string(pathArr[j]) != "/" {
                n++
            }

            i = j

            if m < n {
                switch string(path[m:n]) {
                case ".":
                case "..":
                    if len(slice) >= 1 {
                        slice = slice[:len(slice)-1]
                    }
                default:
                    slice = append(slice, string(path[m:n]))
                }
            }
        }
    }

    for _, str := range slice {
        resString = resString + "/" + str
    }
    if len(resString) == 0 {
        resString = "/"
    }

    return resString
}

思路二

直接裁剪
遇到 . 裁剪裁剪掉 . 到下一个 / 的位置
遇到 .. 向前裁剪到 /
其它情况寻找下一个位置

相关文章

  • 简化路径

    以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。 在 Unix 风格的文...

  • 简化路径

    https://leetcode-cn.com/explore/interview/card/bytedance/...

  • 简化路径

    思路一 使用栈来处理遇到 ".." 出栈遇到 "." 不处理其它情况,进栈 最后拼接字符串 Leecode Gol...

  • 简化路径

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/simpli...

  • Swift - 简化绝对路径

    题目 给出一个文件的绝对路径,要求将其简化。举个例子,路径是“/home/”,简化后为“/home”,路径是“/a...

  • PHP路径简化

    在 Linux 下执行 php 脚本时通常是可以使用以下命令: #/usr/local/php/bin/php t...

  • leetCode进阶算法题+解析(十)

    简化路径 题目:以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。在 Un...

  • 71.简化路径

  • 71.简化路径

    题目给定一个文档 (Unix-style) 的完全路径,请进行路径简化。 例如:path = "/home/", ...

  • [LeetCode]71、简化路径

    题目描述 以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。 在 Unix...

网友评论

      本文标题:简化路径

      本文链接:https://www.haomeiwen.com/subject/kkljuqtx.html