모든 노드에 두 개의 자식이 있는 무한 이진 트리에서 노드는 행 순서로 레이블이 지정된다고 가정합니다. 이제 홀수 행(첫 번째, 세 번째, 다섯 번째,...)에서는 레이블이 왼쪽에서 오른쪽으로, 짝수 행(두 번째, 네 번째, 여섯 번째,...)에서는 레이블이 오른쪽에서 왼쪽으로 지정됩니다. . 따라서 나무는 다음과 같을 것입니다 - 그래서 우리는 이 트리에 있는 노드의 레이블을 지정했으며, 트리의 루트에서 해당 레이블이 있는 노드까지의 경로에서 레이블을 찾아야 합니다. 따라서 입력이 레이블 =14이면 출력은 [1,3,4,14]
바이너리 트리의 루트가 있다고 가정합니다. 우리는 해당 트리의 모든 하위 트리의 최대 평균값을 찾아야 합니다. 트리가 다음과 같다면 - 출력은 6이 되는데, 이는 노드 5의 경우 (5 + 6 + 1)/3 =4이고 노드 6의 경우 6/1 =6이고 노드 1의 경우 다음과 같기 때문입니다. 1 / 1 =1이므로 최대값은 6입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 해상도 :=0 solve()라는 메서드를 정의하면 루트가 됩니다. 루트가 설정되지 않은 경우 [0, 0] 쌍을 반환합니다. 왼쪽
루트된 이진 트리가 있다고 가정하면 가장 깊은 잎의 가장 낮은 공통 조상을 반환해야 합니다. 우리는 다음을 명심해야 합니다 - 이진 트리의 노드는 자식이 없는 경우에만 리프 노드입니다. 트리의 루트 깊이는 0이고 노드의 깊이가 d일 때 각 자식의 깊이는 d+1입니다. S의 모든 노드가 루트 A가 있는 하위 트리에 있도록 최대 깊이를 갖는 노드 A의 노드 집합 S의 가장 낮은 공통 조상입니다. 입력이 [1,2,3,4,5]인 경우 그러면 출력은 [2,4,5]가 됩니다. 이 문제를 해결하기 위해 다음 단계를
0, 1, ..., n-1로 레이블이 지정된 노드가 있는 방향 그래프가 있다고 가정합니다. 이 그래프에서 각 모서리는 빨간색 또는 파란색으로 표시되며 자체 모서리 또는 평행 모서리가 있을 수 있습니다. red_edges의 각 [i, j]는 노드 i에서 노드 j까지의 빨간색 방향 에지를 나타냅니다. 마찬가지로, blue_edges의 각 [i, j]는 노드 i에서 노드 j까지의 파란색 방향 에지를 나타냅니다. 우리는 길이가 n인 배열 응답을 찾아야 합니다. 여기서 각 응답[X]은 노드 0에서 노드 X까지의 최단 경로 길이이므로 가장자리
1에서 N까지 번호가 매겨진 N개의 도시가 있다고 가정합니다. 연결이 있고 각 연결 [i]는 [city1, city2, cost]이며 이는 city1과 city2를 함께 연결하는 비용을 나타냅니다. . 모든 도시 쌍에 대해 두 도시를 함께 연결하는 연결 경로(길이 1일 수 있음)가 존재하도록 최소 비용을 찾아야 합니다. 비용은 사용된 연결 비용의 합계입니다. 작업이 불가능한 경우 -1을 반환합니다. 따라서 그래프가 다음과 같으면 - 그러면 출력은 6이 됩니다. 두 도시를 선택하면 모든 도시가 연결되므로 최소 2, [1, 5]
정수 배열이 있다고 가정하고 이동 작업은 실제로 임의의 요소를 선택하고 1만큼 줄이는 것입니다. 배열 A는 1 또는 2가 충족되는 경우 지그재그 배열입니다 − A[1] A[3] ... 등등. 모든 홀수 인덱스 요소는 인접한 요소보다 큽니다. A[0] A[2] A[4] <... 등등. 주어진 배열 숫자를 지그재그 배열로 변환하려면 최소 이동 횟수를 찾아야 합니다. 따라서 배열이 [1,2,3]과 같으면 2를 0으로 또는 3을 1로 줄일 수 있으므로 출력은 2가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따
두 명의 플레이어가 이진 트리에서 턴제 게임을 한다고 가정합니다. 이 이진 트리의 루트와 트리의 노드 수 n이 있습니다. 여기서 n은 홀수이고 각 노드는 1에서 n까지의 고유한 값을 갖습니다. 처음에 첫 번째 플레이어는 1 <=x <=n으로 값 x에 이름을 지정하고 두 번째 플레이어는 1 <=y <=n으로 값 y에 이름을 지정하며 y !=x와 같은 조건을 유지합니다. 첫 번째 플레이어는 값 x가 있는 노드를 빨간색으로 색칠하고 두 번째 플레이어는 값 y를 가진 노드를 파란색으로 색칠합니다. 그 후, 플레이어는 첫 번째 플레이어부터
다음 인터페이스를 지원하는 SnapshotArray를 구현해야 한다고 가정해 보겠습니다. - SnapshotArray(int length) 지정된 길이로 배열과 유사한 데이터 구조를 초기화합니다. 처음에는 각 요소가 0입니다. set(index, val) 주어진 인덱스의 요소를 val과 같게 설정합니다. snap()은 배열의 스냅샷을 찍고 snap_id를 반환합니다. 즉, snap()을 호출한 총 횟수에서 1을 뺀 것입니다. get(index, snap_id) 이것은 주어진 snap_id로 스냅샷을 찍은 시점에
바이너리 배열 데이터가 있다고 가정하면 배열에 저장된 모든 1을 배열의 어느 위치에서든 함께 그룹화하는 데 필요한 최소 스왑 수를 찾아야 합니다. 따라서 배열이 [1,0,1,0,1,0,0,1,1,0,1]과 같은 경우 가능한 솔루션은 [0,0,0,0, 0,1,1,1,1,1,1] 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 1:=0, n:=데이터 배열의 길이로 설정 크기가 n인 배열 합계를 만들고 이를 0으로 채우고 summ[0] :=data[0]으로 설정 하나 :=하나 + 데이터[0] 1 ~ n – 1 범위의 i에 대해 s
d개의 주사위가 있고 각 주사위에는 1, 2, ..., f로 번호가 매겨진 f개의 면이 있다고 가정합니다. 우리는 주사위를 굴리기 위해 가능한 방법의 수(총 fd 중에서)를 모듈로 10^9 + 7로 찾아야 앞면이 보이는 숫자의 합이 목표와 같도록 해야 합니다. 따라서 입력이 d =2, f =6, target =7과 같으면 출력은 6이 됩니다. 따라서 각 주사위를 6면으로 던진다면 합 6을 얻는 방법은 1 + 6, 2 + 5, 3 + 3, 4 + 3, 5 + 2, 6 + 1. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − m
이 두 가지 기능을 제공하는 파일 시스템을 설계해야 한다고 가정해 봅시다 - createPath(path, value) - 새 경로를 만들고 가능한 경우 값을 연결하고 True를 반환합니다. 경로가 이미 존재하거나 상위 경로가 존재하지 않으면 False를 반환합니다. get(path) - 경로와 관련된 값을 찾거나 경로가 없으면 -1을 반환합니다. 경로 형식은 -(슬래시) / 뒤에 하나 이상의 소문자 영어 문자가 오는 형식의 하나 이상의 연결된 문자열입니다. 예를 들어 /programming 및 /programming/prob
문자열 s가 있다고 가정하고 s의 하위 문자열에 대해 쿼리를 작성해야 합니다. 각 쿼리 쿼리[i]에는 [왼쪽, 오른쪽, k]의 세 부분이 있습니다. 하위 문자열 s[left], ..., s[right]를 재배열한 다음 그 중 최대 k개를 선택하여 바꿀 수 있습니다. 모든 소문자 영어. 위에서 언급한 작업 후에 부분 문자열이 회문일 수 있는 경우 쿼리 결과는 true입니다. 그렇지 않으면 거짓입니다. 배열 answer[]를 찾아야 합니다. 여기서 answer[i]는 i번째 쿼리 쿼리[i]의 결과입니다. 예를 들어 입력이 abcda인
문자열 s가 있다고 가정합니다. 우리는 s에 나타나는 것과 같은 순서로 모든 단어를 수직으로 찾아야 합니다. 여기서 단어는 문자열 목록으로 반환되며 필요할 때 공백으로 완성해야 합니다. (후행 공백은 허용되지 않습니다). 각 단어는 하나의 열에만 있고 한 열에는 하나의 단어만 있을 것입니다. 따라서 입력 문자열이 HOW ARE YOU이면 출력은 [HAY, ORO, WEU]가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − s :=공백으로 분할된 문자열 목록 만들기, 하나의 빈 배열 x 만들기, 행 =0으로 설정
비어 있지 않은 정수 배열이 있다고 가정하고 모든 요소는 정확히 한 번 나타나는 하나를 제외하고 세 번 나타납니다. 우리는 단일 요소를 찾아야 합니다. 따라서 배열이 [2,2,3,2]이면 출력은 3이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 배열에서 요소의 절대값을 가져와 최대값을 찾아 max_num에 저장합니다. max_bits :=정수(log max_num base 2) + 2 list1 :=크기가 max_bits이고 요소가 0인 빈 목록 숫자의 각 숫자에 대해 - 위치 :=0
문자열이 있다고 가정합니다. 주어진 입력이 유효한 IPv4 주소인지 IPv6 주소인지 또는 둘 다인지 확인해야 합니다. IPv4 주소는 표준적으로 점으로 구분된 10진수 표기법으로 표시되며, 각각의 범위는 0에서 255까지이며 점(.)으로 구분된 4개의 10진수로 구성됩니다(예:192.168.254.1; 게다가 IPv4 주소의 선행 0은 유효하지 않습니다. 예를 들어, 주소 192.168.254.01은 유효하지 않습니다. 그러나 단순성을 추구하기 위해 두 개의 연속적인 콜론(::)을 사용하여 값이 0인 연속적인 그룹을 하나의
==연산자 ==연산자는 개체의 값이 같은지 확인하여 피연산자를 비교합니다. 연산자 is 연산자는 개체가 동일한지 여부를 확인하여 피연산자를 비교합니다. 예시 다음은 차이점을 보여주는 Python 프로그램입니다. list1 = [1] list2 = [1] list3 = list1 print(id(list1)) print(id(list2)) if (list1 == list2): print("True") else: print("False") if
파이썬 Python은 구현하기 쉽고 이해하기 쉽도록 설계된 프로그래밍 언어입니다. 동적으로 유형이 지정된 언어입니다. 포인터를 사용하지 않습니다. 배쉬 Bash는 명령줄 인터프리터이며 Linux 및 MacOS 운영 체제에서 기본적으로 제공됩니다. 다른 운영 체제에도 설치할 수 있습니다. Linux 및 MacOS용 기본 사용자 셸입니다. 다음은 Python과 Bash의 중요한 차이점 중 일부입니다. Sr. 아니요. 키 파이썬 배쉬 1 유형 Python은 자동화 프로그래밍에 주로 사용되는 프로그래밍 언어입니다. Bash는 사용
이 문서는 침투 테스트 중에 사용하도록 설계된 도구 모음이므로 Veil 프레임워크를 사용하여 안티바이러스 탐지를 우회하는 방법을 보여주기 위한 것입니다. 현재 다음 모듈로 구성되어 있습니다 - 장막 회피 − 다양한 기술과 언어를 사용하여 바이러스 방지 페이로드를 생성하는 도구 장막 투석기 − Veil-Evasion을 통합하는 psexec 스타일의 페이로드 전달 시스템 베일-PowerView − Windows 도메인에서 네트워크 상황 인식을 얻기 위한 powershell 도구 베일 약탈 − Veil-Evasion을 통합하는 모듈식
이 튜토리얼에서는 단위 테스트에 대해 알아볼 것입니다. unittest 사용 내장 모듈. 테스트는 소프트웨어 개발에서 중요한 역할을 합니다. 프로덕션 자체로 이동하기 전에 문제를 알 수 있습니다. unittest라는 내장 모듈을 사용하여 Python에서 테스트하는 기본 사항을 배웁니다. . 튜토리얼을 시작하겠습니다. 단위 테스트란 무엇입니까? 로그인 시스템을 예로 들면. 로그인 양식의 각 필드는 단위/구성 요소입니다. 그리고 이러한 단위/구성요소 기능을 테스트하는 것을 단위 테스트라고 합니다. 예시 unittest 프레임워크
이 튜토리얼에서는 try 및 제외 파이썬의. Python에는 오류 및 예외 처리라는 개념이 있습니다. 키워드 시도 및 제외 오류 및 예외 처리에 사용됩니다. 기본적으로 Python에서 두 가지 유형의 오류를 찾을 수 있습니다. 그들은 - 구문 오류 - Python은 프로그램의 한 줄의 코드를 이해하지 못할 때 이러한 유형의 오류를 제공합니다. 예외 오류 - 프로그램 실행 중에 감지된 오류. 예:- ZeroDivisionError, ValueError 등, 구문 오류를 막을 수는 없습니다. 그러나 try-exce