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

Python에서 두 숫자의 이진 표현이 아나그램인지 확인

<시간/>

두 개의 숫자 x와 y가 있다고 가정하면 x와 y의 이진 표현이 서로의 아나그램인지 여부를 확인해야 합니다.

따라서 입력이 x =9 y =12와 같으면 9의 이진 표현이 1001이고 12의 이진 표현이 1100이므로 출력은 True가 됩니다. 따라서 이 둘은 서로의 아나그램입니다.

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

  • x와 y의 1의 개수가 같으면
    • 참 반환
  • 거짓을 반환

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

예시

def set_bit_count(num) :
   cnt = 0
   while num:
      cnt += num & 1
      num >>= 1
   return cnt
def solve(x, y) :
   if set_bit_count(x) == set_bit_count(y):
      return True
   return False
x = 9
y = 12
print(solve(x, y))

입력

9, 12

출력

True