lc-go/solutions/0/q71/solution.go

33 lines
559 B
Go

// Package q71 implements a solution for https://leetcode.com/problems/simplify-path/
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