Мартин обнови решението на 09.10.2013 20:58 (преди над 4 години)
+func parsePath(path string) string {
+ parts := strings.Split(path, "/")
+ var parsedParts []string
+ for _, part := range parts {
+ if part == "." {
+ continue
+ }
+ if part == ".." && len(parsedParts) > 0 {
+ parsedParts = parsedParts[:len(parsedParts)-1]
+ } else if part != ".." {
+ parsedParts = append(parsedParts, part)
+ }
+ }
+ parsedString := strings.Join(parsedParts, "/")
+ if len(parsedString) == 0 || parsedString[0] != '/' {
+ parsedString = "/" + parsedString
+ }
+ return parsedString
+}
Решението ти ми харесва.
Изпрати го, обаче като цял файл, а не просто функцията. Визирам да укажеш пакет в началото на файла (укажи main
) и да импортнеш каквото ползваш в решението си.