1234567891011121314151617181920212223242526272829303132333435 |
- package main
- import (
- "strings"
- )
- func simplifyPath(path string) string {
- strs := strings.Split(path, "/")
- res := []string{""}
- for _, v := range strs {
- // "/./" or "//" => ""
- if v == "." || v == "" {
- } else if v == ".." {
- // "/../" => "/"
- // "/d/c/../" => "/d"
- if len(res) != 1 {
- res = res[:len(res)-1]
- }
- } else {
- // "/c" => "/c"
- res = append(res, v)
- }
- }
- // "" => "/"
- if len(res) == 1 {
- return "/"
- }
- return strings.Join(res, "/")
- }
- /* func main() {
- fmt.Println(simplifyPath("/c/"))
- fmt.Println(simplifyPath("/a/./b/../../c/"))
- fmt.Println(simplifyPath("/../../"))
- } */
|