Kimi LeetCode 71. 简化路径 Rust实现
2026/9/11 9:36:13 网站建设 项目流程

LeetCode 71. 简化路径

思路:按/分割路径,用一个栈存放目录名:

  • 遇到空串或.:跳过
  • 遇到..:栈非空则弹栈
  • 其他:入栈

最后用/拼接。

implSolution{pubfnsimplify_path(path:String)->String{letmutstack:Vec<&str>=Vec::new();forpartinpath.split('/'){matchpart{""|"."=>{}".."=>{stack.pop();}dir=>stack.push(dir),}}letmutresult=String::new();fordirinstack{result.push('/');result.push_str(dir);}ifresult.is_empty(){"/".to_string()}else{result}}}

要点说明:

  1. split('/')天然处理了多个连续斜杠,空串直接跳过
  2. ..时要判断栈非空再pop(已在根目录时..无效果)
  3. 答案一定以/开头,栈空时返回"/"

复杂度:时间 O(n),空间 O(n)。

例如输入"/home//foo/../bar":

  • home入栈,空串跳过,foo入栈,..弹掉foo,bar入栈
  • 结果为"/home/bar"

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询