美文网首页leetcode
71. Simplify Path.go

71. Simplify Path.go

作者: AnakinSun | 来源:发表于2019-03-23 13:30 被阅读0次

注意strings.FieldsFunc的使用

func simplifyPath(path string) string {
    dirs := strings.FieldsFunc(path, func(s rune) bool {
        if s == '/' {
            return true
        }
        return false
    })
    for i := 0; i < len(dirs); i++ {
        if dirs[i] == "." {
            dirs = append(dirs[:i], dirs[i+1:]...)
            i--
        } else {
            if dirs[i] == ".." {
                if i == 0 {
                    dirs = dirs[1:]
                    i--
                    continue
                }
                dirs = append(dirs[:i-1], dirs[i+1:]...)
                i -= 2
            }
        }
    }
    res := "/"
    for i := 0; i < len(dirs); i++ {
        res += dirs[i]
        if i != len(dirs)-1 {
            res += "/"
        }
    }
    return res
}

相关文章

网友评论

    本文标题:71. Simplify Path.go

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