Александър обнови решението на 13.10.2013 12:28 (преди над 4 години)
+package main
+
+import "strings"
+
+func parsePath(path string) string {
+ directories := strings.Split(path, "/")
+
+ var (
+ backSteps int = 0
+ resultPath string = ""
+ )
+
+ for i := len(directories) - 1; i >= 0; i-- {
+ switch directories[i] {
+ case "", ".":
+ case "..":
+ backSteps++
+ default:
+ if backSteps > 0 {
+ backSteps--
+ } else {
+ resultPath = "/" + directories[i] + resultPath
+ }
+ }
+ }
+
+ return resultPath + "/"
+}
Хитро решение, харесва ми :)