Python程序:查找返回主文件夹所需的最小跳转次数


假设我们有一些日志记录文件,其中包含进入文件夹的路径,可能包含不同的符号,例如:

  • "../":从当前文件夹移动到父文件夹。(如果位于主文件夹,则位置不变)。

  • "./":保留在当前文件夹。

  • "x/":移动到名为 x 的子文件夹。

根据日志,我们需要找到从我们停止的最后一个文件夹返回到主文件夹所需的最小操作次数。

例如,如果输入为 logs = ["Dir1/","Dir2/","../","Dir2/","Dir3/","./"],则输出为 3

从图中我们可以看到,我们需要后退三次才能到达主文件夹。

为了解决这个问题,我们将遵循以下步骤:

  • stk := 新建一个列表

  • 对于logs中的每个项目i,执行以下操作:

    • 如果i等于"../"并且stk的大小>0,则

      • 删除stk中的最后一个元素

    • 否则,如果i不等于"./”并且i不等于"../",则

      • 将i插入到stk的末尾

    • 否则

      • 进行下一次迭代

  • 返回stk中的项目数量

示例 (Python)

让我们来看下面的实现,以便更好地理解:

 在线演示

def solve(logs):
   stk = []
   for i in logs:
      if i == "../" and len(stk) > 0:
         stk.pop()
      elif i != "./" and i != "../":
         stk.append(i)
      else:
         continue
   return len(stk)

logs = ["Dir1/","Dir2/","../","Dir2/","Dir3/","./"]
print(solve(logs))

输入

["Dir1/","Dir2/","../","Dir2/","Dir3/","./"]

输出

3

更新于:2021年5月17日

282 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告