add new solutions
This commit is contained in:
parent
d798d5e8c9
commit
886b5e0a8e
34 changed files with 1164 additions and 0 deletions
32
solutions/0/q71/solution.go
Normal file
32
solutions/0/q71/solution.go
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue