nums라는 숫자 목록과 다른 값 k가 있다고 가정하고 길이가 k 이상인 목록의 하위 목록에서 가장 큰 평균 값을 찾아야 합니다. 따라서 입력이 nums =[2, 10, -50, 4, 6, 6] k =3과 같으면 하위 목록 [4, 6, 6]이 가장 큰 평균 값을 가지므로 출력은 5.33333333이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 왼쪽 :=최소 숫자, 오른쪽 :=최대 숫자 s :=인덱스 0부터 k − 1까지의 모든 숫자의 합 가장 큰_avg :=s / k 왼쪽 <=오른쪽, 수행
1이 육지를 나타내고 0이 물을 나타내는 이진 행렬이 있다고 가정합니다. 그리고 섬은 물로 둘러싸인 1의 그룹입니다. 가장 큰 섬의 크기를 찾아야 합니다. 최대 하나의 물 전지를 지상 전지로 변경할 수 있습니다. 따라서 입력이 다음과 같으면 1 0 1 0 0 0 1 1 0 1 1 1 그러면 출력은 7이 됩니다. 하나의 물 세포를 육지로 전환하여 두 섬을 연결할 수 있기 때문입니다. 따라서 최종 행렬은 다음과 같습니다. - 1 0 1 0 0 0 1 1 0 1 1 1 이 문제를 해결하기 위해 다음 단계를 따릅
LFU(최소 자주 사용됨) 캐시 시스템에 대한 데이터 구조를 구현하려고 한다고 가정합니다. 다음 작업을 지원해야 합니다. get(key) - 키가 캐시에 있으면 키 값을 가져오는 데 도움이 됩니다. 그렇지 않으면 -1을 반환합니다. set(key, value) - 키가 아직 없는 경우 값을 설정하거나 삽입하는 데 사용됩니다. 캐시가 최대 용량에 도달하면 새 요소를 삽입하기 전에 가장 적게 사용되는 요소를 무효화해야 합니다. 따라서 LFUCache가 용량 2로 초기화되고 이러한 메서드를 호출하면 cache.set(1
nums라는 숫자 목록이 있다고 가정하고 임의의 숫자와 그 다음으로 작은 숫자 사이에 존재하는 최대 차이를 찾아야 합니다. 우리의 목표는 이것을 선형 시간에 푸는 것입니다. 따라서 입력이 nums =[14, 2, 6, 35, 12]와 같으면 35와 14의 차이가 21로 가장 크므로 출력은 21이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − max_val :=최대 숫자, min_val :=최소 숫자 max_val이 min_val과 같으면 0 반환 델타 :=(max_val - min_val)
2차원 행렬과 또 다른 값 k가 있다고 가정하면 sum ≤ k인 사각형의 가장 큰 합을 찾아야 합니다. 따라서 입력이 다음과 같으면 5 −2 7 10 k =15이면 출력은 12가 됩니다. 직사각형 [5, 7]을 사용하여 12의 합이 15보다 작기 때문입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=의 행 수 m :=a의 열 개수 ans :=inf 범위 0에서 n의 i1에 대해 수행 row :=크기가 m이고 0으로 채워진 목록 범위 i1에서 n까지의 i2에 대해 수행
하나의 무한한 물 격자가 있다고 가정합니다. 그리드에 토지 블록을 하나씩 추가할 수 있습니다. 우리는 각 좌표가 [r, c] 형식인 land_requests라는 좌표 목록을 가지고 있습니다. 여기서 r은 행이고 c는 열입니다. land_requests에서 각 토지 블록을 추가한 후 각 요소가 존재하는 섬의 수를 나타내는 목록을 찾아야 합니다. 따라서 입력이 land_requests =[[1, 1],[2, 4],[1, 2],[1, 4],[1, 3]]과 같으면 출력은 [1, 2 , 2, 2, 1] 이 문제를 해결하기 위해 다음
셀이 그 안의 동전 수를 나타내는 2D 행렬이 있다고 가정합니다. 코인을 모으는 두 친구가 있고 시작 시 왼쪽 상단 모서리와 오른쪽 상단 모서리에 배치됩니다. 다음 규칙을 따릅니다. 코인 수집가는 셀(i, j)에서 셀(i + 1, j - 1), (i + 1, j) 또는 (i + 1, j + 1)로 이동할 수 있습니다. 세포에 도달하면 사용 가능한 모든 동전을 수집하여 세포를 비웁니다. 수집가는 한 셀에 머물도록 선택할 수 있지만 모든 셀에 있는 동전은 한 번만 수집할 수 있습니다. 모을 수 있는 최대 코인 수를
nums라는 숫자 목록이 제공된다고 가정합니다. 여기에서 값이 목록에 있는 경우 인덱스 i + 숫자[i] 또는 인덱스 i에서 i − 숫자[i]로 점프할 수 있습니다. 따라서 입력 순서를 변경하지 않고 유지하면서 패리티가 다른 다른 값에 도달하는 데 필요한 점프 수를 찾아야 합니다. 패리티가 다른 다른 번호에 연결할 수 없으면 -1로 설정됩니다. 따라서 입력이 숫자 =[7, 3, 4, 5, 6, 9, 6, 7]과 같으면 출력은 [−1, 1, 2, −1, −1, −1, 1이 됩니다. , -1]. 이 문제를 해결하기 위해 다음 단계를
숫자 목록이 있다고 가정합니다. 시퀀스에서 숫자를 삭제할 때 각 숫자가 동일한 횟수만큼 발생하도록 가장 긴 숫자 시퀀스의 길이를 찾아야 합니다. 따라서 입력이 숫자 =[2, 4, 4, 7, 7, 6, 6]과 같으면 출력은 7이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − num_freq :=새 지도 freq_freq :=새 지도 diff_freq :=새로운 세트 결과 :=1 각 인덱스 I 및 값 num(숫자)에 대해 수행 cur_freq :=num_freq[숫자] num_fr
고유한 게임을 하고 있고 n, k 및 h의 세 가지 값이 있다고 가정합니다. 0점에서 시작하여 1과 h(포함) 사이에서 무작위로 숫자를 선택하면 그만큼 많은 점수를 얻을 수 있습니다. 우리는 최소 k 포인트를 얻었을 때 중지합니다. 우리는 n개 이하의 포인트를 가질 확률을 찾아야 합니다. 여기서 임의의 숫자를 임의로 선택할 수 있으며 결과는 모두 동일한 확률을 갖습니다. 따라서 입력이 n =2, k =2, h =10과 같으면 출력은 0.11이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − dp() 함수를 정의
1차원 도로에서 자동차를 운전하고 있다고 가정해 보겠습니다. 현재 위치 =0이고 속도 =1입니다. 이 두 가지 작업 중 하나를 수행할 수 있습니다. 0, 그렇지 않으면 속도:=1. 최소한 목표에 도달하는 데 필요한 이동 수를 찾아야 합니다. 따라서 입력이 target =10과 같으면 출력은 7이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − dfs() 함수를 정의합니다. 이것은 숫자, 비용, 위치, 음수, 대상을 취합니다. tot :=비용 + 최대값 2 *(pos − 1) 및 2 * (neg
문자와 괄호 ( 및 )가 포함된 소문자 문자열이 있다고 가정합니다. 괄호로 묶인 모든 문자열을 재귀적 방식으로 뒤집고 결과 문자열을 반환해야 합니다. 따라서 입력이 s =back(aps)ce와 같으면 출력은 backspace가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 함수 trav() 를 정의합니다. 이것은 s, dir, start, close:=close, ans:=ans가 필요합니다. end :=( dir이 -1과 같으면, 그렇지 않으면 ) other :=( 끝이 )와 같으면 ) st
두 개의 문자열 s와 t가 있다고 가정합니다. s에서 가장 작은 부분 문자열을 찾아야 합니다. 여기서 t는 부분 문자열의 부분 시퀀스이기도 합니다. 해당 유형의 하위 문자열이 존재하지 않는 경우 빈 문자열을 반환하고 가장 작은 하위 문자열이 여러 개 있는 경우 가장 왼쪽에 있는 문자열을 사용합니다. 따라서 입력이 s =abcbfbghfb, t =fg와 같으면 출력은 fbg가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − N :=S의 크기 dp :=무한대로 초기화된 크기 N의 새 목록 범위 0에서 N
여러 번 파이썬은 파이썬 목록이나 사전 등으로 변환할 수 있는 csv, JSON 등과 같은 다양한 형식이 될 수 있는 다양한 소스로부터 데이터를 수신합니다. 그러나 pandas와 같은 패키지를 사용하여 계산 또는 분석을 적용하려면 이 데이터를 다음으로 변환해야 합니다. 데이터 프레임. 이 기사에서는 요소가 중첩 사전인 주어진 python 목록을 pandas Datframe으로 변환하는 방법을 볼 것입니다. 먼저 중첩된 사전 목록을 가져와서 데이터 행을 추출합니다. 그런 다음 원래 비어 있던 새 목록에 행을 추가하는 또 다른 for
Kivy는 멀티 터치 앱과 같은 혁신적인 사용자 인터페이스를 사용하는 애플리케이션의 신속한 개발을 위한 오픈 소스 Python 라이브러리입니다. Android 애플리케이션 및 데스크탑 애플리케이션을 개발하는 데 사용됩니다. 이 기사에서는 앵커 레이아웃 위치 지정을 사용하는 방법을 살펴보겠습니다. AnchorLayout을 사용하여 테두리 중 하나에 위젯을 배치합니다. kivy.uix.anchorlayout.AnchorLayout 클래스는 앵커 레이아웃을 구현합니다. anchor_x 매개변수와 anchor_y 매개변수 모두 left,
Kivy는 멀티 터치 앱과 같은 혁신적인 사용자 인터페이스를 사용하는 애플리케이션의 신속한 개발을 위한 오픈 소스 Python 라이브러리입니다. Android 애플리케이션 및 데스크탑 애플리케이션을 개발하는 데 사용됩니다. 이 기사에서는 BoxLayout 위젯을 사용하여 다양한 방향과 색상의 버튼을 만드는 방법을 살펴보겠습니다. 아래 코드에서는 먼저 방향이 수직인 외부 상자를 만듭니다. 그런 다음 가로 방향으로 행 1을 만듭니다. 그런 다음 세로 방향으로 두 개의 다른 행을 다시 만듭니다. 이 모든 행을 외부 상자에 래핑하고 그
Kivy는 멀티 터치 앱과 같은 혁신적인 사용자 인터페이스를 사용하는 애플리케이션의 신속한 개발을 위한 오픈 소스 Python 라이브러리입니다. Android 애플리케이션 및 데스크탑 애플리케이션을 개발하는 데 사용됩니다. 이 기사에서는 버튼을 눌렀을 때 이벤트를 사용하는 방법을 살펴보겠습니다. 아래 예제에서는 수평 BoxLayout에 버튼과 레이블을 만들었습니다. 버튼과 레이블에 초기 텍스트를 제공합니다. 그런 다음 버튼과 레이블의 텍스트를 변경하는 버튼 클릭 이벤트를 만듭니다. 단일 파이썬 파일입니다. 예시 from kivy.
많은 경우 우리는 항상 일반 ASCII 문자를 갖지 않는 데이터를 처리해야 합니다. 예를 들어, 영어가 아닌 다른 언어로 된 이메일. Python에는 MIME(Multipurpose Internet Mail Extensions) 기반 모듈을 사용하여 이러한 문자를 처리하는 메커니즘이 있습니다. 이 기사에서는 이메일 또는 일부 직접 입력에서 이러한 문자를 디코딩하는 방법을 살펴보겠습니다. 이메일 패키지 사용 이메일 패키지에는 아래 예제와 같이 인코딩 및 디코딩 작업을 수행할 수 있는 mime 및 charset이라는 모듈이 있습니다.
암호화, 압축과 같은 다양한 이유로 또는 단지 다른 OS 또는 파일 읽기 프로그램에서 처리될 것이기 때문에 파일을 전송하는 동안 인코딩 및 디코딩하는 것이 일반적인 요구 사항입니다. uuencode 모듈은 아래와 같이 파일을 인코딩 및 디코딩하는 데 도움이 됩니다. 파일 인코딩 인코딩을 위해 아래 이미지를 사용하고 나중에 다시 가져오기 위해 디코딩합니다. 아래 프로그램에서 우리는 인코딩 기능을 사용하여 주어진 이미지를 인코딩하고 인코딩 후 파일의 내용을 읽습니다. 예 가져오기 uuinfile =E:\\tp_logo.JPGuu
외부 데이터 표현(XDR)을 위한 인코더 및 디코더. 서로 다른 외부 소스 간에 데이터를 전송할 때 일반적으로 사용되는 형식입니다. 복잡한 데이터 구조의 생성 및 전송에 유용합니다. XDR은 OSI Presentation Layer와 관련된 서비스를 제공합니다. 아래 프로그램에서 xdrlib 모듈을 사용하여 데이터가 어떻게 패킹되고 풀려지는지 볼 수 있습니다. 예 import xdrlib p = xdrlib.Packer() print(type(p)) lst = [1,2,3] p.pack_list(lst, p.pack_int) pr