import java.util.*
/**
This problem was asked by Quora.
Given an absolute pathname that may have . or .. as part of it, return the shortest standardized path.
For example, given "/usr/bin/../bin/./scripts/../", return "/usr/bin/".
* */
class Problem_713 {
/*
* solution: Stack, Time:O(n), Space:O(n)
* */
fun simplifyPath(path: String): String {
if (path == null || path.isEmpty()) {
return ""
}
val list = path.split("/")
val stack = Stack<String>()
for (item in list) {
if (item != "." && item != "..") {
stack.push(item)
} else if (stack.isNotEmpty() && item == "..") {
stack.pop()
}
}
return stack.joinToString("/")
}
}