71. 简化路径
1.格式遵循
一个点(.)表示当前目录本身;
两个点 (..) 表示将目录切换到上一级(指向父目录);
任意多个连续的斜杠(即,’//‘)都被视为单个斜杠 ‘/‘ ;
任何其他格式的点(例如,’…’)均被视为文件/目录名称。
始终以斜杠 ‘/‘ 开头。
两个目录名之间必须只有一个斜杠 ‘/‘ 。
最后一个目录名(如果存在)不能 以 ‘/‘ 结尾。
此外,路径仅包含从根目录到目标文件或目录的路径上的目录(即,不含 ‘.’ 或 ‘..’)。
2. 求解
创建一个栈只进目录名称,遇到”..”就弹栈,遇到”.”不操作,通过循环添加目录名到输出字符串,如果栈中没有数据就添加一个根目录
for i in stack.iter() {
s.push('/');
s.push_str(i);
}
if s.len() == 0 {
s.push_str("/");
}