Skip to content

简化路径

LeetCode-71

js

var simplifyPath = function(path) {
  // 用/切割, 过滤掉空字符串(是开头的/或者双//)和点(./为当前目录)
  path = path.split('/').filter(item => item && item !== '.')
  let stack = [] // 声明一个栈
  for(let key of path) {
    // 遇到.. 说明是上一级(栈为空时说明时根目录,继续pop不会有啥影响)
    if(key === '..') {
      stack.pop()
    // 第一步已经过滤掉,直接push路径即可
    }else {
      stack.push(key)
    }
  }
  return `/${stack.join('/')}` // 返回值前面得加上个/
}