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

Python에서 다른 문자열을 2자리 회전하여 문자열을 얻을 수 있는지 확인

<시간/>

두 개의 문자열 s와 t가 있다고 가정합니다. 좌우 어느 방향으로든 2개 회전시켜 얻을 수 있는지 확인해야 합니다.

따라서 입력이 s ="kolkata" t ="takolka"와 같으면 "takolka"를 왼쪽으로 두 번 회전하여 "kolkata"를 얻을 수 있으므로 출력은 True가 됩니다.

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

  • s의 크기가 t의 크기와 같지 않으면
    • 거짓을 반환
  • right_rot :=빈 문자열
  • left_rot :=빈 문자열
  • l :=t의 크기
  • left_rot :=left_rot 연결 t[인덱스 l - 2에서 끝까지] 연결 t[인덱스 0에서 l - 3]
  • right_rot :=right_rot 연결 t[인덱스 2에서 끝까지] t 연결[인덱스 0에서 1]
  • s가 right_rot과 같거나 s가 left_rot과 같으면 true를 반환하고 그렇지 않으면 false를 반환합니다.

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

예시

def solve(s, t):
   if (len(s) != len(t)):
      return False
   right_rot = ""
   left_rot = ""
   l = len(t)
   left_rot = (left_rot + t[l - 2:] + t[0: l - 2])
   right_rot = right_rot + t[2:] + t[0:2]
   return (s == right_rot or s == left_rot)
s = "kolkata"
t = "takolka"
print(solve(s, t))

입력

"kolkata", "takolka"

출력

True