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

하나의 문자열을 확인하는 프로그램은 Python에서 문자를 시계 방향으로 이동하여 다른 문자열로 변환할 수 있습니다.

<시간/>

두 개의 문자열 p와 q가 있고 숫자 r이 있다고 가정하면 일부 문자를 최대 r번 시계 방향으로 이동하여 p가 q로 변환될 수 있는지 확인해야 합니다. 예를 들어 시계 방향으로 2번 이동하면 "c"가 "e"로 바뀔 수 있습니다.

따라서 입력이 p ="abc", q ="ccc", r =3과 같으면 시계 방향으로 2번 이동하여 "a"를 "c"로 만든 다음 " b"에서 "c"로 1번 시계 방향으로 이동하여 총 3번 이동합니다.

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

  • 의 크기가 b의 크기와 같지 않으면
    • 거짓을 반환
  • k가 0과 같고 a가 b와 같지 않으면
    • 거짓을 반환
  • su:=0
  • 0에서 크기 범위의 i에 대해
    • v :=b[i]의 ASCII - [i]의 ASCII
    • v>=0이면
      • su :=su + v
    • 그렇지 않으면
      • 수 :=수 + v + 26
    • su> k이면
      • 거짓을 반환
  • 참 반환

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

예시

class Solution:
   def solve(self, a, b, k):
      if len(a) != len(b):
         return False
      if k == 0 and a != b:
         return False
         su=0
         for i in range(len(a)):
            v = ord(b[i])- ord(a[i])
            if v>=0:
               su+=v
            else:
               su+=v+26
            if su>k:
               return False
         return True
ob = Solution()
print(ob.solve("abc", "ccc", 3))

입력

"abc", "ccc", 3

출력

True