ARTS Week 12
Algorithm
Problem 112. Path Sum(경로 총계) 제목 링크
제목 설명: 두 갈래 나무와 하나의 값sum를 지정하고, 두 갈래 나무가 잎 경로의 합과 같은sum의 경로가 있는지 확인하고, 존재하면true를 되돌리고, 반대로false를 되돌려줍니다.예를 들어, sum = 22, 두 갈래 트리는 다음과 같습니다.
5
/ \
4 8
/ / \
11 13 4
/ \ \
7 2 1
결과true를 반환합니다. 왜냐하면 5->4->11->2
사고방식은 나무의 반복은 귀속을 사용하고sum는 동시에 업데이트를 유지해야 한다. 예를 들어 위의 예에서 뿌리 노드를 사용한 후sum=22-5=17, 결점은 공결점과 잎결점에 대해 특수 처리를 해야 한다.
통과된 코드는 다음과 같다
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def hasPathSum(self, root: TreeNode, sum: int) -> bool:
if root == None:
return False
elif root != None and root.left == None and root.right == None:
return (sum == root.val)
else:
return (self.hasPathSum(root.left, sum-root.val)) or (self.hasPathSum(root.right, sum-root.val))
Review
이번 주에는 모든 프로그래머가 알아야 할 97가지 리뷰를 계속합니다.원문 링크.다음은 이번 주 5가지 작은 내용입니다.
try {
// ...do something...
}
catch (...) {} // ignore errors
오류를 소홀히 하면 심각한 결과를 초래할 수 있다. 예를 들어 발견하기 어려운 오류가 발생하고 오류를 이용하여 소프트웨어를 침입하고 파괴할 수 있다.따라서 우리는 그것을 소홀히 하지 않고 오류를 처리해야 한다.
Tips
Python의 문자와 ASCII 코드 값의 변환:ord() 함수는 문자를 ASCII 코드 값으로 변환하고,chr() 함수는 ASCII 코드 값을 문자로 변환합니다. 예를 들어 다음과 같습니다.
print("ord('H') = ",ord('H')) # ord('H') = 72
print("chr(77) = ",chr(77)) # chr(77) = M
Sharing
Review 부분에서 언급한 프로그램을 직립 위치에 박지 마세요(Don't Nail Your Program into the Upright Position). 저는 이렇게 하면 좋고 나쁨이 있다고 생각합니다. 단지 오류가 발생했거나 구체적인 오류 원인을 보고하든.나는 사용자에 대한 영향이 똑같다고 생각한다. 좋은 방법은 간략한 오류를 보고하는 것이다. 구체적으로 알고 싶지 않은 사용자가 들어가면 오류가 발생하는 것을 알면 된다. 오류를 구체적으로 알고 싶은 사용자는 상세한 오류를 볼 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.