크롤러 로그 폴더

1804 단어 leetcodetheabbiedsa
Leetcode 파일 시스템은 일부 사용자가 폴더 변경 작업을 수행할 때마다 로그를 유지합니다.

작업은 다음과 같습니다.
  • "../" : 현재 폴더의 상위 폴더로 이동합니다. (이미 기본 폴더에 있는 경우 동일한 폴더에 남아 있습니다.)
  • "./" : 같은 폴더에 남아 있습니다.
  • "x/" : x라는 하위 폴더로 이동합니다(이 폴더는 항상 존재함을 보장합니다).

  • 문자열 목록logs이 제공되며 여기서 logs[i]ith 단계에서 사용자가 수행한 작업입니다.

    파일 시스템이 기본 폴더에서 시작된 다음 logs의 작업이 수행됩니다.

    폴더 변경 작업 후 기본 폴더로 돌아가는 데 필요한 최소 작업 수를 반환합니다.

    예 1:



    입력: 로그 = ["d1/","d2/","../","d21/","./"]
    출력: 2
    설명: 이 폴더 변경 작업 "../"을 2번 사용하고 기본 폴더로 돌아갑니다.

    예 2:



    입력: 로그 = ["d1/","d2/","./","d3/","../","d31/"]
    출력: 3

    예 3:

    입력: 로그 = ["d1/","../","../","../"]
    출력: 0

    제약:
  • 1 <= logs.length <= 103
  • 2 <= logs[i].length <= 10
  • logs[i]에는 소문자 영문자, 숫자, '.''/'가 포함됩니다.
  • logs[i]는 문에 설명된 형식을 따릅니다.
  • 폴더 이름은 영문 소문자와 숫자로 구성됩니다.

  • 해결책:

    class Solution:
        def minOperations(self, logs: List[str]) -> int:
            ctr = 0
            for log in logs:
                if log == "../":
                    ctr =  max(ctr - 1, 0)
                elif log != "./":
                    ctr += 1
            return ctr
    

    좋은 웹페이지 즐겨찾기