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

Python에서 해결된 Unix 스타일 경로를 찾는 프로그램

<시간/>

문자열 목록에서 Unix 경로가 있다고 가정하고 해결된 버전을 찾아야 합니다. Unix에서 알 수 있듯이 ".."는 이전 디렉터리를 나타내고 "."는 이전 디렉터리를 나타냅니다. 현재 디렉토리에 있음을 나타냅니다. 여기서 해결은 현재 있는 최종 디렉토리를 얻기 위해 두 기호를 평가하는 것을 나타냅니다.

따라서 입력이 path =["usr", "..", "usr", ".", "local", "etc", "foo"]와 같으면 출력은 ['usr', 'local', 'etc', 'foo'], "/usr/../usr/./local/etc"를 나타내는 부분이 "/usr/local/etc/foo"로 해석됨

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

  • s :=새 목록
  • 경로의 각 요소 i에 대해 다음을 수행합니다.
    • 내가 '..'와 같으면
      • s가 비어 있지 않으면
        • s에서 마지막 요소 삭제
    • 그렇지 않으면 i가 '.'와 같지 않으면
      • s 끝에 i 삽입
  • 반환

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

예시

class Solution:
   def solve(self, path):
      s = []
      for i in path:
         if i == '..':
            if len(s) >0:
               s.pop()
            elif i !='.':
               s.append(i)
      return s
ob = Solution()
print(ob.solve(["usr", "..", "usr", ".", "local", "etc", "foo"]))

입력

["usr", "..", "usr", ".", "local", "etc", "foo"]

출력

['usr', 'local', 'etc', 'foo']