나는 코더 바이트의 파이썬 배열 추가를하고 있었지만 도전 할 수는 없었다. 나는 다른 사용자의 올바른 코드를 보았고, 나는 그것에 당혹 스러웠다. 주로 return 문에서 "또는"무엇을합니까? 그것은이 문제에 대한 해결책을 완전히 이해하는 것을 방해합니다. 감사.파이썬에서 무엇을하는지 return 문 /리스트 부분 집합 합계에 대한 설명
질문은 다음과 같습니다. ArrayAdditionI (arr) 함수가 arr에 저장된 숫자의 배열을 가져 와서 배열의 숫자 조합을 합하여 배열의 가장 큰 숫자와 그렇지 않은 경우는 false를 돌려줍니다. 예를 들어, arr에 [4, 6, 23, 10, 1, 3]이 포함되어있는 경우 4 + 6 + 10 + 3 = 23이므로 출력은 true를 반환합니다. 배열은 비어 있지 않고 동일한 요소를 모두 포함하지 않으며, 음수를 포함 할 수 있습니다.
def subsetsum(target, arr):
if len(arr) == 0:
return target == 0
return subsetsum(target, arr[1:]) or subsetsum(target - arr[0], arr[1:])
def ArrayAdditionI(arr):
arr = sorted(arr)
target = arr[-1]
arr = arr[:-1]
return 'true' if subsetsum(target, arr) else 'false'
# keep this function call here
# to see how to enter arguments in Python scroll down
print ArrayAdditionI(raw_input())
중복 가능성 (http://stackoverflow.com/questions/13870378/python-or-operator-weird-behavior) –