1. 题目
2. 分析
3. 代码
我写了一版很复杂的代码:
class Solution:def simplifyPath(self, path: str) -> str:operator = [] # 操作符的栈dir_name = [] # 文件名的栈idx = 0cur_dir_name = ""while(idx < len(path)):if path[idx] == '/':operator.append('/')cur_dir_name = "" # initnext_idx = idx+1while(next_idx < len(path) and path[next_idx]!='/'):cur_dir_name += path[next_idx]next_idx+=1# 获取dir_nameif cur_dir_name == ".":operator.pop()elif cur_dir_name == "..":if len(operator):operator.pop()if len(dir_name):dir_name.pop()elif cur_dir_name != "":dir_name.append(cur_dir_name)elif cur_dir_name == "":operator.pop()idx = next_idx# 输出最后结果res = ""for i in range(len(operator)):if i < len(dir_name):res += (operator[i] + dir_name[i])if res == "":res = "/"return res