lc-go/solutions/0/q71/solution.go
2026-01-17 12:51:40 +09:00

32 lines
473 B
Go

package q71
import "strings"
func simplifyPath(path string) string {
b := strings.Builder{}
fields := strings.FieldsFunc(path, func(r rune) bool { return r == '/' })
p := 0
for i := range fields {
switch fields[i] {
case ".":
continue
case "..":
p = max(p-1, 0)
default:
fields[p] = fields[i]
p++
}
}
for i := range p {
b.WriteByte('/')
b.WriteString(fields[i])
}
if p == 0 {
return "/"
}
return b.String()
}
var _ = simplifyPath