ให้ Unix path เป็นลิสต์สตริง (เช่น ["usr","..","usr",".","local","etc","foo"]) Resolve ตามกฎ: ".." = ย้อนโฟลเดอร์ก่อนหน้า, "." = โฟลเดอร์ปัจจุบัน
ตัวอย่าง: ["usr","..","usr",".","local","etc","foo"] → ["usr","local","etc","foo"]
อัลกอริธึม Stack
- เดินผ่านแต่ละส่วน: ถ้าเป็น ".." และ stack ไม่ว่าง → pop
- ถ้าไม่ใช่ "." และไม่ใช่ ".." → push
การนำไปใช้
class Solution:
def solve(self, path):
s = []
for part in path:
if part == '..':
if s:
s.pop()
elif part != '.':
s.append(part)
return s
ob = Solution()
print(ob.solve(["usr","..","usr",".","local","etc","foo"]))
# ['usr', 'local', 'etc', 'foo']