Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 폴더에서 홈으로 돌아가는 데 필요한 최소 점프를 찾는 프로그램

<시간/>

폴더에 입력할 경로가 있는 로그가 있다고 가정하면 -

와 같은 다른 기호가 있을 수 있습니다.
  • "../" :현재 폴더에서 상위 폴더로 이동합니다. (메인 폴더라면 위치를 바꾸지 마세요.)

  • "./" :현재 폴더에 남습니다.

  • "x/" :x라는 이름의 하위 폴더로 이동합니다.

로그에서 중지한 마지막 폴더에서 기본 폴더로 돌아오는 데 필요한 최소 작업 수를 찾아야 합니다.

따라서 입력이 logs =["Dir1/","Dir2/","../","Dir2/","Dir3/","./"]인 경우 출력은 3

Python에서 폴더에서 홈으로 돌아가는 데 필요한 최소 점프를 찾는 프로그램

이미지에서 볼 수 있듯이 집에 도착하려면 세 번 뒤로 물러나야 합니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • stk :=새 목록

  • 로그의 각 항목 i에 대해 수행

    • i가 "../"와 같고 크기가 stk> 0이면

      • stk에서 마지막 요소 삭제

    • 그렇지 않으면 내가 "./"와 같지 않고 "../"와 같지 않으면

      • stk 끝에 i 삽입

    • 그렇지 않으면

      • 다음 반복으로 이동

  • stk의 항목 수를 반환

예제(파이썬)

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

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