num이라는 배열이 k 크기의 이진 문자열의 인코딩을 나타낸다고 가정하고 주어진 인코딩이 이진 문자열을 고유하게 찾는지 여부를 확인해야 합니다. 여기에서 인코딩에는 단일 0으로 구분되는 연속 1 수가 있습니다.
따라서 입력이 nums =[4, 2, 3] k =11과 같으면 k =11의 11110110111과 같은 이진 문자열이 있으므로 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- total :=nums의 모든 요소 합계
- 총계 :=총계 + 숫자 크기 - 1
- 총계가 k와 같으면 true를 반환하고 그렇지 않으면 false를 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
def solve(nums, k): total = sum(nums) total += len(nums) - 1 return total == k nums = [4, 2, 3] k = 11 print(solve(nums, k))
입력
[4, 2, 3], 11
출력
True