and 및 or 연산자가 있는 부울 표현식을 포함하는 문자열 s가 있다고 가정하고 이를 평가하고 결과를 반환합니다. 여기서 표현식에는 먼저 평가되어야 하는 괄호가 있을 수 있습니다. 따라서 입력이 s =T 및 (F 또는 T)와 같으면 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. 스택 :=새 목록 t =공백으로 분할된 s의 요소 목록 t의 각 v에 대해 수행 v[0]이 (과 같으면 v[(의 인덱스에서 끝까지]가 T와 같을 때 true를 스택으로 푸시합니다. 그렇지
사탕이라는 숫자 목록이 있고 누군가 친구와 게임을 하고 있다고 가정해 보겠습니다. 각 라운드에서 플레이어는 동일한 값을 가진 두 개의 연속 사탕을 제거할 수 있습니다. 그리고 사탕을 못 줍는 사람이 지고 그 플레이어 1이 먼저 시작하기 때문에 플레이어 1이 이길지 여부를 확인해야 합니다. 따라서 입력이 nums =[2, 2, 5]와 같으면 출력은 True가 됩니다. 마치 player1이 2를 선택하고 다른 플레이어가 사탕을 선택할 수 없는 것과 같습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. 스택 :=새 스택
로마 숫자가 있다고 가정합니다. 숫자로 변환해야 합니다. 우리가 알고 있듯이 로마 숫자는 왼쪽에서 오른쪽으로 가장 큰 것에서 작은 것 순으로 기호로 표시되며, 유일한 예외는 기호보다 하나 작은 경우입니다. 일부 로마 숫자 기호 의미는 다음과 같습니다. M:1000 D:500 C:100 L:50 X:10 V:5 나:1 따라서 입력이 숫자 =MCLXVI와 같으면 출력은 1166이 됩니다. M =1000, C =100, 총계는 1100, L =50, X =10, VI =6이므로 총계는 1166입
상자 목록이 있다고 가정하고 여기 각 항목에는 두 개의 값 [start, end](start
[시작, 종료] 형식의 간격 목록이 있다고 가정합니다. 이는 코스의 시작 및 종료 시간을 나타냅니다. 한 번에 하나의 과정만 들을 수 있고 과정의 시작이 마지막 과정의 끝보다 늦어야 한다고 가정할 때 들을 수 있는 최대 과정 수를 찾아야 합니다. 따라서 입력이 시간 =[[3, 6],[6, 9],[7, 8],[9, 11]]과 같으면 출력은 [[3] 과정을 수강할 수 있으므로 3이 됩니다. , 6], [7, 8], [9, 11]] 이 문제를 해결하기 위해 다음 단계를 따릅니다. 종료 시간을 기준으로 시간 정렬 카운터 :=
이진 행렬이 있다고 가정하고 주어진 행렬에서 원하는 수의 열을 선택하고 해당 열의 모든 셀을 뒤집을 수 있습니다. 셀 변환은 셀 값을 반전시키는 것을 의미합니다. 몇 번의 뒤집기 후에 모든 값이 동일한 최대 행 수를 찾아야 합니다. 따라서 행렬이 다음과 같다면 0 0 0 0 0 1 1 1 0 출력은 2가 됩니다. 이는 처음 두 열의 값을 변환한 후 마지막 두 행의 값이 같기 때문입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. x :=행렬, m :=행 수 및 n :=열 수 및 r :=0 x의 각 요소
문자열 단어 목록이 있다고 가정합니다. 각 문자가 고유하도록 단어의 하위 시퀀스를 연결하여 구성된 문자열을 만들어야 합니다. 우리는 마침내 그러한 가장 긴 연결의 길이를 찾아야 합니다. 따라서 입력이 단어 =[xyz, xyw, wab, cde]와 같으면 중복 문자가 포함되어 있으므로 단어를 선택할 수 없으므로 출력은 9가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. 답변 :=0 함수 recur() 를 정의하십시오. 이것은 i:=0, cur:=공백 문자열이 필요합니다. if i is same as size of w
nums라는 숫자 목록이 있다고 가정합니다. 우리는 숫자로 된 모든 숫자 쌍의 모든 연결의 합을 찾아야 합니다. 여기서 쌍(i, j)과 쌍(j, i)은 서로 다른 것으로 간주됩니다. 따라서 입력이 nums =[5, 3]과 같으면 다음 연결이 있으므로 출력은 176이 됩니다. (nums[0] + nums[0]) =(5 concat 5) =55, ( nums[0] + nums[1]) =(5 concat 3) =53, (nums[1] + nums[0]) =(3 concat 5) =35, (nums[0] + nums[0]) =(3 con
행렬 [r, c]가 도시의 콘도미니엄 높이를 나타내는 2D 행렬이 있다고 가정합니다. 서쪽-동쪽 스카이라인은 행렬의 각 행의 최대값을 취하여 볼 수 있습니다. 그리고 각 기둥의 최대값을 취하여 남북의 스카이라인을 볼 수 있습니다. 동서남북 동일한 스카이라인을 유지하면서 각 콘도의 높이를 가능한 최대 높이로 높이는 새로운 매트릭스를 찾아야 합니다. 따라서 입력이 다음과 같으면 2 3 4 5 6 7 8 9 10 4 4 4 7 7 7 8 9 10 동서 스카이라인이 [4, 7, 10]이고 남북 스카이라인이 [8,
정수 막대 목록이 있다고 가정합니다. 여기서 목록의 각 요소는 두 끝이 있는 막대를 나타내며 이 값은 1에서 6 사이입니다. 이들은 각 끝을 나타냅니다. 끝이 같은 막대가 있으면 두 막대기를 함께 연결할 수 있습니다. 결과 스틱의 끝은 남은 끝이 되며 길이가 늘어납니다. 가능한 가장 긴 막대기의 길이를 찾아야 합니다. 따라서 입력이 스틱 =[ [2, 3], [2, 4], [3, 5], [6, 6] ]과 같으면 출력은 [2, 3]을 연결할 수 있으므로 3이 됩니다. ] 및 [2, 4]는 [3, 4]를 가져오고 [3, 5]와 연결하여
바이너리 트리 루트가 있다고 가정합니다. 자식이 하나만 있는 모든 노드를 제거해야 합니다. 따라서 입력이 다음과 같으면 그러면 출력은 이 문제를 해결하기 위해 다음 단계를 따릅니다. solve()라는 메서드를 정의하면 트리 루트가 사용됩니다. 루트가 null이면 루트 반환 루트의 왼쪽이 null이고 루트의 오른쪽이 null이면 루트 반환 루트의 왼쪽이 null이면 해결 반환(루트 오른쪽) 루트의 오른쪽이 null이면 해결 반환(루트 왼쪽) 루트 왼쪽 :
1이 살아있는 세포를 의미하고 0이 죽은 세포를 의미하는 2D 이진 행렬이 있다고 가정합니다. 셀의 이웃은 바로 수평, 수직 및 대각선 셀입니다. 이 규칙을 사용하여 행렬의 다음 상태를 찾아야 합니다. 2~3명의 살아있는 이웃이 있는 모든 살아있는 세포가 삽니다. 3개의 살아있는 이웃이 있는 죽은 세포는 살아있는 세포가 됩니다. 다른 모든 세포는 죽습니다. 따라서 입력이 다음과 같으면 1 1 0 0 0 1 0 0 0 1 0 1 1 1 0 1 그러면 출력은 1 1 0 0 0 1 0 0 0 1 0
두 개의 숫자 A와 B가 있다고 가정합니다. 이제 각 연산에서 숫자 중 하나를 선택하고 1씩 증가하거나 1 감소할 수 있습니다. 우리는 최대 공약수가 되도록 필요한 최소 연산 수를 찾아야 합니다. A와 B 사이는 1이 아닙니다. 따라서 입력이 A =8, B =9와 같으면 출력은 1이 됩니다. 9를 선택한 다음 10으로 늘릴 수 있으므로 8과 10은 공소수가 아닙니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. 및 b의 gcd가 1과 같지 않으면 0 반환 짝수이거나 b가 짝수이면 1 반환 그
숫자 n이 있다고 가정합니다. 각 연산이 다음과 같은 n 연산을 사용하여 입력할 수 있는 최대 문자 수를 찾아야 합니다. 문자 x를 삽입합니다. 모든 문자를 복사합니다. 붙여넣기 따라서 입력이 n =12와 같으면 출력은 81이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. n <=4이면 반환 n v :=6, x :=3, i :=5, j :=0 i가 n과 같지 않은 동안 수행 v :=v + x i :=i + 1, j :=j + 1 j가 3으로 나누어지면
계단이라는 숫자 목록과 또 다른 값 k가 있다고 가정합니다. 우리는 현재 계단 0에 있으며 계단의 마지막 인덱스로 올라가고 싶습니다. 계단[i] 값은 인덱스에서 도달하는 비용을 나타내며 각 라운드에서 한 번에 1, 2, ... k 계단을 점프할 수 있습니다. 마지막 계단까지 오르기 위한 최소 비용을 찾아야 합니다. 따라서 입력이 계단식 =[4, 11, 11, 3, 2] k =3인 경우 계단식[4, 3, 2]을 사용할 때 출력값은 9가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. q :=이중 종료 대기열 및 쌍(
유효한 단어 목록이 있고 문자열 s도 있다고 가정하면 s에서 시작하여 단일 문자를 제거하고 여전히 유효한 단어를 만들 수 있는 가장 긴 감소 단어 체인의 길이를 찾아야 합니다. li라는 단어로 시작하여 체인을 만들 수 있으므로 출력은 4가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. solve() 함수를 정의합니다. 이것은 단어가 필요합니다, s max_num :=0 단어의 각 i에 대해 수행 i가 s와 같으면 범위 0에서 s까지의 j에 대해 다음을 수행합니다. max_num :=최대
nums라는 숫자 목록이 있다고 가정하고 i
동전이라는 값 목록과 같은 길이의 수량이라는 또 다른 목록이 있다고 가정합니다. i번째 코인의 가치는 코인[i]이고 현재 i번째 코인의 수량[i]개를 가지고 있습니다. 이 코인의 비어 있지 않은 그룹을 사용하여 얻을 수 있는 고유한 코인 합계 값의 수를 찾아야 합니다. 따라서 입력이 동전 =[1, 2, 5] 수량 =[1, 2, 1]과 같으면 다음과 같은 고유한 동전 합계 [1] =1, [2]를 가질 수 있으므로 출력은 10이 됩니다. =2, [1,2] =3, [2,2] =4, [5] =5, [1,5] =6, [2,5] =7, [1
텍스트와 패턴이라는 문자열 목록이 있다고 가정하고 주어진 패턴의 문자열과 일치하는 텍스트의 모든 하위 문자열이 및 로 래핑되는 embolden 함수를 정의해야 합니다. 태그. 두 패턴이 인접하거나 겹치는 경우 하나의 태그로 병합해야 합니다. 따라서 입력이 text =thisissampleline patterns =[this, issam, sample]과 같으면 출력은 abcdefg, bc 및 ef가 텍스트와 일치하고 및 태그로 래핑됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. n :=텍스트 크기 굵게
소개.. Python에는 명령줄 인수를 구문 분석하는 기능을 제공하는 매우 강력한 argparse 모듈이 있습니다. 많은 상호 작용 없이 OS 명령줄에서 사용자 입력을 얻으려면 명령줄에서 매개변수를 허용하는 프로그램을 코딩하십시오. 파싱할 URL을 제공하거나 S3 버킷에 업로드할 파일을 수락하면 최소한의 노력으로 argparse를 사용할 수 있습니다. 기본 사용법 코드가 수락할 인수를 정의합니다. 인수 파서를 호출하여 결과 개체를 반환합니다. 인수를 사용하십시오. 간단히 말해서 인수 파서의 구조는 다음과 같습