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

파이썬의 고대 우주비행사 이론


문자열 사전이 있다고 가정하면 사전은 고대 우주비행사 사전의 부분적인 사전 순서를 나타냅니다. 따라서 문자열이 있는 경우 고대 우주비행사 사전에 따라 사전순으로 정렬된 문자열인지 여부를 확인해야 합니다.

따라서 입력이 사전 ="bdc", s ="bbbb h ddd i cccc"와 같으면 출력은 True

가 됩니다.

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

  • l :=astro_dict의 크기

  • l이 0과 같으면

    • 참을 반환

  • 나는 :=0

  • s의 각 문자 c에 대해

    • astro_dict에 c가 있으면

      • i

        • 나는 :=나는 + 1

      • i>=l 또는 astro_dict[i]가 c가 아니면

        • 거짓을 반환

  • 참을 반환

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

class Solution:
   def solve(self, astro_dict, s):
      l = len(astro_dict)
      if l == 0:
         return True
      i = 0
      for c in s:
         if c in astro_dict:
            while i < l and astro_dict[i] != c:
               i += 1
            if i >= l or astro_dict[i] != c:
               return False
      return True
ob = Solution()
print(ob.solve("bdc","bbbb h ddd i cccc"))

입력

"bdc","bbbb h ddd i cccc"

출력

True