Files
LeetCode-Go/leetcode/0071.Simplify-Path/71. Simplify Path.go
2020-08-07 17:06:53 +08:00

35 lines
690 B
Go

package leetcode
import (
"path/filepath"
"strings"
)
// 解法一
func simplifyPath(path string) string {
arr := strings.Split(path, "/")
stack := make([]string, 0)
var res string
for i := 0; i < len(arr); i++ {
cur := arr[i]
//cur := strings.TrimSpace(arr[i]) 更加严谨的做法应该还要去掉末尾的空格
if cur == ".." {
if len(stack) > 0 {
stack = stack[:len(stack)-1]
}
} else if cur != "." && len(cur) > 0 {
stack = append(stack, arr[i])
}
}
if len(stack) == 0 {
return "/"
}
res = strings.Join(stack, "/")
return "/" + res
}
// 解法二 golang 的官方库 API
func simplifyPath1(path string) string {
return filepath.Clean(path)
}