在Python中编写用于查找从文件夹返回主目录所需的最小跳数的程序

在Python中编写用于查找从文件夹返回主目录所需的最小跳数的程序

假设我们有一个日志文件,其中包含进入文件夹的路径,可能会有不同的符号,如−

  • “../”:从当前文件夹移动到父文件夹(如果我们在主文件夹中,则不更改位置)。

  • “./”:留在当前文件夹中。

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

从日志中,我们必须找到回到停止时的最后一个文件夹所需的最少操作数,以返回主文件夹。

因此,如果输入为logs=[“Dir1 /”,”Dir2 /”,”../”,”Dir2 /”,”Dir3 /”,”./”],则输出将为3

在Python中编写用于查找从文件夹返回主目录所需的最小跳数的程序

从图中可以看出,我们必须后退三次才能到达主目录。

要解决此问题,我们将按照以下步骤执行 −

  • stk:一个新列表

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

    • 如果i与“../”相同且stk的大小> 0,则
      • 从stk中删除最后一个元素
    • 否则,当i不同于“./”且i不同于“../”时,则
      • 在stk的末尾插入i
    • 否则,
      • 进入下一个迭代
  • 返回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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程