문자열 s가 있다고 가정합니다. 우리는 s의 가장 긴 nice 부분 문자열을 찾아야 합니다. 문자열 s의 경우 s의 모든 알파벳 문자가 대문자와 소문자로 모두 표시되면 nice라고 합니다. 이러한 하위 문자열이 여러 개 있는 경우 가장 먼저 발생한 하위 문자열을 반환합니다. 따라서 입력이 s =ZbybBbz와 같으면 소문자 및 대문자 B가 포함되어 있으므로 출력은 bBb가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − cur_max:=-1 res:=빈 문자열 범위 0에서 s까지의 i에 대해 c
두 개의 문자열 s와 t가 있다고 가정합니다. s에서 시작하여 교대로 문자를 추가하여 병합해야 합니다. s와 t의 길이가 같지 않으면 병합된 문자열의 끝에 추가 문자를 추가합니다. 따라서 입력이 s =major t =general과 같으면 t가 s보다 크므로 출력은 mgaejnoerral이 되므로 끝에 ral을 추가했습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 나는 :=j :=0 결과 :=빈 문자열 동안 i
각 nums[i]에 세 개의 요소[type_i, color_i, name_i]가 포함된 배열 nums가 있다고 가정합니다. i번째 항목의 유형, 색상 및 이름을 설명합니다. 또한 두 개의 다른 문자열(ruleKey 및 ruleValue)로 표시되는 규칙이 있습니다. 이제 다음 중 하나가 참인 경우 i번째 항목이 규칙과 일치한다고 말할 수 있습니다. - ruleKey =유형 및 규칙 값 =type_i. ruleKey =색상 및 ruleValue =color_i. 규칙키 =이름 및 규칙값 =이름_i. 찾을 수 있는
pts라는 배열에 주어진 점 집합이 있다고 가정합니다. 또한 현재 위치인 또 다른 점(x, y)이 있습니다. 유효한 점을 현재 점과 동일한 x 좌표 또는 동일한 y 좌표를 공유하는 점으로 정의합니다. 현재 위치(x, y)에서 맨해튼 거리가 가장 작은 유효한 포인트의 인덱스를 반환해야 합니다. 포인트가 두 개 이상인 경우 인덱스가 가장 작은 유효한 포인트를 반환합니다. (참고:두 점 (a, b)와 (p, q) 사이의 맨해튼 거리는 |a - p| + |b - q|입니다. 따라서 입력이 pts =[(1,2),(3,1),(3,4),(2,
(앞에 0이 없는) 이진 문자열 s가 있다고 가정하고 s에 1의 연속된 세그먼트가 최대 하나 포함되어 있는지 확인해야 합니다. 따라서 입력이 s =11100과 같으면 111의 세그먼트가 하나 있으므로 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 개수 :=-1 s의 크기가 1과 같으면 참을 반환 s의 각 i에 대해 수행 -1이면 거짓을 반환 그렇지 않으면 i가 0과 같을 때 개수 :=개수 + 1 참을 반환 이해를 돕기 위해 다음
길이가 같은 두 개의 문자열 s와 t가 있다고 가정합니다. 문자열에서 두 개의 인덱스를 선택하고(반드시 다를 필요는 없음) 선택한 인덱스에서 문자를 교환하는 작업을 고려하십시오. 정확히 하나의 문자열에 대해 최대 한 번의 문자열 스왑을 수행하여 두 문자열을 동일하게 만드는 것이 가능한지 여부를 확인해야 합니다. 따라서 입력이 s =hello t =hlelo와 같으면 출력은 True가 됩니다. 왜냐하면 s 또는 t에서 e와 l을 바꿔서 동일하게 만들어야 하기 때문입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − m
영숫자 문자열 s가 있다고 가정하고 s에 나타나는 두 번째로 큰 숫자를 찾아야 합니다. 그런 문자열이 없으면 -1을 반환합니다. 따라서 입력이 s =p84t3ho1n과 같으면 숫자가 [1,3,4,8]이므로 출력은 4이므로 두 번째로 큰 숫자는 4입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − lst :=새로운 세트 각 렛에 대해 수행 let이 알파벳이 아닌 경우 let을 ls에 정수로 삽입 lst의 크기가 <=1이면 반환 -1 lst를 정렬한 후 마지막 두 번째 요소를
nums라고 하는 양수 값의 배열이 있다고 가정하고 nums에서 오름차순 하위 배열의 가능한 최대 합을 찾아야 합니다. 하위 배열 [nums_l, nums_l+1, ..., nums_r-1, nums_r]은 모든 i에 대해 l <=i
소문자 영숫자 문자열 s가 있다고 가정합니다. 모든 숫자가 아닌 문자를 공백으로 교체하기 위해 면도했지만 이제 최소한 하나의 공백으로 구분된 일부 정수가 남습니다. s에 대한 교체 작업을 수행한 후 서로 다른 정수의 수를 찾아야 합니다. 여기서 두 숫자는 선행 0이 없는 소수 표현이 다른 경우 다른 것으로 간주됩니다. 따라서 입력이 s =ab12fg012th5er67과 같으면 출력은 3이 됩니다. 왜냐하면 숫자 [12, 012, 5, 67]가 이제 12 및 012이기 때문입니다. 문자열은 다르지만 정수와 같습니다. 따라서 세 개의
체스판 좌표, 즉 체스판의 행과 열 좌표를 나타내는 문자열이 있다고 가정합니다. 아래는 참고용 체스판입니다. 주어진 셀이 흰색인지 확인해야 합니다. 흰색이면 true를 반환하고 그렇지 않으면 false를 반환합니다. 따라서 입력이 좌표 =f5와 같으면 출력은 True(이미지 참조)가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 좌표[0] mod 2의 ASCII가 동일한 좌표[1]) mod 2인 경우 거짓을 반환 그렇지 않으면 참을 반환 이해를 돕기 위해 다음 구현을 살펴보겠
선행 또는 후행 공백 없이 단일 공백으로 구분된 일부 영어 단어가 있는 문장 s가 있다고 가정합니다. 또 다른 값 k가 있습니다. 잘린 후 처음 k 단어만 찾으면 됩니다. 따라서 입력이 s =코딩 도전은 학생들에게 정말 도움이 됩니다. k =5와 같으면 출력은 True(이미지 참조)가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 단어 :=공백으로 s 분할 공백을 분리하여 단어 배열에서 처음 k 문자를 결합하고 반환 이해를 돕기 위해 다음 구현을 살펴보겠습니다. − 예시 def solve(s, k)
num이라는 배열이 있다고 가정합니다. 배열에 있는 모든 요소의 곱셈 결과의 부호를 찾아야 합니다. 따라서 입력이 nums =[-2,3,6,-9,2,-4]와 같으면 곱셈 결과가 -2592이므로 출력은 음수가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 0 :=0,음수 :=0 숫자로 된 각 i에 대해 수행 i가 0과 같으면 0 :=0 + 1 i <0이면 음수 :=음수 + 1 0이면 0 반환 그렇지 않으면 음수 모드 2가 0과 같을 때 양수 반환
배열 번호가 있다고 가정합니다. 한 번의 작업으로 배열의 한 요소를 선택하고 1씩 늘릴 수 있습니다. 예를 들어, [4,5,6]이 있는 경우 인덱스 1의 요소를 선택하여 배열을 [4,5,5]로 만들 수 있습니다. . 그런 다음 nums를 엄격하게 증가시키는 데 필요한 최소 연산 수를 찾아야 합니다. 따라서 입력이 nums =[8,5,7]과 같으면 출력은 7이 됩니다. 왜냐하면 [8,6,7],[8,7,7],[8,8]과 같이 증가해야 하기 때문입니다. ,7],[8,9,7],[8,9,8],[8,9,9],[8,9,10]. 이 문제를 해
영어 소문자만 포함된 문장 s가 있다고 가정합니다. 팬그램인지 아닌지 확인해봐야겠죠? 문자열이 영어 알파벳에 있는 26개의 문자를 모두 포함하는 경우 팬그램이라고 합니다. 따라서 입력이 s =thegrumpywizardmakestoxicbrewfortheevilqueenandjack과 같으면 a에서 z까지 26개의 문자가 있으므로 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − dictb :=새 지도 s의 각 i에 대해 수행 dictb[i] :=(i가 dictb[i]에 있으면 i,
십진수 시스템(10진법)의 숫자 n이 다른 값 k를 갖는다고 가정하고, 주어진 숫자 n을 밑수 10에서 밑수 k로 변환한 후 n의 자릿수의 합을 찾아야 합니다. 자릿수 합을 계산할 때 각 자릿수를 십진수(10진수)로 간주합니다. 따라서 입력이 n =985 k =8과 같으면 8진수의 숫자 985가 1731이므로 자릿수 합이 1+7+3+1 =12이기 때문에 출력은 12가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 답변 :=0 =k, 수행 ans :=ans + n mod k n :=n/k의 몫
짝수 위치에 소문자 영어 문자를 포함하고 홀수 위치에 숫자를 포함하는 영숫자 문자열 s가 있다고 가정합니다. c가 임의의 문자이고 x가 숫자(숫자)인 연산 shift(c, x)를 고려하면 c 다음의 x번째 문자를 찾습니다. 예를 들어 shift(p, 5) =u 및 shift(a, 0) =a입니다. 이제 모든 홀수 인덱스 i에 대해 숫자 s[i]를 shift(s[i-1], s[i])로 교체하려고 합니다. 모든 숫자를 교체한 후 s를 찾아야 합니다. 따라서 입력이 s =a2b1d4f3h2와 같으면 출력은 acbcdhfihj가 됩니다.
배열 nums와 두 개의 다른 값 target(target은 nums에 있어야 함)과 start가 있다고 가정하면 nums[i] =target 및 |i - start|가 되는 인덱스 i를 찾아야 합니다. 최소입니다. |i - start|를 반환해야 합니다. 따라서 입력이 nums =[3,4,5,6,7] target =7 start =2와 같으면 target과 일치하는 값이 하나만 있기 때문에 출력은 2가 됩니다. 즉, nums[4] , 그래서 나는 =4. 이제 |4-2| =2. 이 문제를 해결하기 위해 다음 단계를 따릅니다.
각 행이 i번째 사람의 출생 및 사망 연도를 나타내는 두 개의 열(출생, 사망)이 있는 테이블이 있다고 가정합니다. 어떤 연도 y의 인구는 y 동안 생존한 사람의 수입니다. i번째 사람은 y가 포함 범위 [birth_i, death_i - 1]에 있을 때 y의 인구로 계산됩니다. (사람은 사망한 해에 계산되지 않습니다.) 따라서 인구가 가장 많은 가장 빠른 해를 찾아야 합니다. 따라서 입력이 다음과 같으면 출생 죽음 1970년 2010년 1960년 2020년 1940 1970년 대상과 일치하는 값이 하나만 있기 때문에
arr 배열과 다른 값 대상이 있다고 가정합니다. 각각의 합이 target과 같은 두 개의 겹치지 않는 arr의 하위 배열을 찾아야 합니다. 답이 여러 개라면 두 부분배열의 길이의 합이 가장 작은 답을 찾아야 합니다. 두 개의 필수 하위 배열 길이의 최소 합을 찾아야 합니다. 그러한 하위 배열이 없으면 -1을 반환합니다. 따라서 입력이 arr =[5,2,6,3,2,5] target =5와 같으면 출력은 2가 됩니다. 합계가 5인 3개의 하위 배열이 있고 [5], [3,2]입니다. ] 및 [5], 이제 그 중 2개만 크기가 가장 작
정수만 저장되는 num이라는 배열이 있다고 가정합니다. 숫자 k가 있는 경우. 정확히 k개의 요소를 제거한 후 최소한의 고유한 요소를 찾아야 합니다. 따라서 입력이 nums =[5,4,2,2,4,4,3], k =3과 같으면 출력은 2가 됩니다. 왜냐하면 5와 3, 그리고 2 중 하나를 제거하면 또는 4 중 하나를 선택하면 2와 4만 남게 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 사전:=새 지도 숫자의 각 숫자에 대해 수행 num이 사전에 없으면 사전[숫자]:=1 그렇지 않으면