여기서 우리는 두 문자열을 비교하지만 문자열의 문자의 대소문자를 무시하는 strcmp(문자열 비교) 함수를 만들어야 합니다. 이 함수는 string1 string2이면 1을 반환합니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 string1 = “Hello” , string2 = “hello” 출력 0 string2[i]이면 1을 반환하고 string1[i]
memcpy() 함수는 소스 위치에서 대상 위치로 데이터를 복사하는 데 사용되는 내장 함수입니다. memcpy 함수의 프로토타입 - void * memcpy(void *destination_location, void *source_location, size_t 크기) 원본에서 대상으로 데이터를 문자별로 복사합니다. 솔루션 구현을 보여주는 프로그램, 예시 #include<stdio.h> #include<string.h> void MemcpyFunc(void *dest, void *src, size_t n
c 프로그래밍 언어의 atoi() 함수는 문자열을 정수로 변환하는 데 사용됩니다. 이 함수는 문자열을 입력으로 받아 정수형으로 값을 반환합니다. 구문 int atoi(const char string) 허용되는 매개변수 − atio() 함수는 정수로 변환될 문자열을 입력으로 받아들였습니다. 반환 유형 - 함수는 정수 값을 반환합니다. 값은 유효한 문자열에 해당하는 정수가 됩니다. 그렇지 않으면 0이 반환됩니다. atoi() 함수의 구현 - 우리는 문자열의 각 문자를 취하고 10을 곱한 이전 결과에 숫자를 더하여 정수를 만듭니다
이 문제에서는 두 개의 나무가 제공됩니다. 우리의 임무는 두 트리가 동일한지 여부를 확인하는 코드를 작성하는 것입니다. 배열의 요소가 동일한 값과 방향을 가지면 두 트리가 동일하다고 합니다. 예 두 트리 모두 동일한 값과 요소의 위치를 가지므로 두 트리가 동일합니다. 두 트리가 동일한지 확인하기 위해 노드 노드에서 각 노드로 이동하여 단계적으로 동등성을 확인하고 노드가 같지 않은 지점에서 -1을 반환하면 트리가 동일하지 않음을 나타내며 전체 트리가 탐색되거나 두 트리가 모두 비어 있는 경우 1을 반환하
이 문제에서는 두 개의 정수 x와 y가 주어집니다. 우리의 작업은 0(Log y)의 시간 복잡도에서 작업을 완료하는 반복적인 접근 방식을 사용하여 pow(x,y)와 동일한 함수를 만드는 것입니다. 문제를 이해하기 위해 몇 가지 예를 들어보겠습니다. 입력 x = 7 , y = 3 출력 343 pow(x,y)의 반복 함수는 x를 곱한 y의 홀수 값에 대한 결과를 반복 및 업데이트하고 모든 반복에서 x를 x2로 업데이트합니다. 솔루션 구현을 보여주는 프로그램 예시 #include <iostream> using namesp
여기에 주어진 숫자가 3의 배수인지 확인하는 프로그램을 작성해야 합니다. 일반 솔루션은 숫자의 모든 자릿수를 더하고 합계가 3의 배수이면 숫자를 3으로 나누어 떨어지지 않는 사소한 솔루션입니다. 그러나 이 솔루션은 가장 효율적인 솔루션이 아닙니다. 효율적인 솔루션은 숫자의 이진 표현에서 비트 수를 사용하는 것입니다. 홀수 위치의 설정 비트 수와 짝수 위치 설정 비트 수의 차이가 3의 배수이면 3의 배수입니다. 루프를 사용하여 숫자의 비트를 이동하고 짝수 및 홀수 위치인 비트 수를 계산합니다. 마지막으로 차이가 3의 배수인 경
이 문제에서는 부호 없는 정수 n이 주어집니다. 우리의 임무는 숫자의 모든 비트를 반대로 하여 생성된 숫자를 반환하는 프로그램을 만드는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 n = 1 출력 2147483648 설명 binary of 1 is 000...0001, the reverse is 100...0000. 이 문제를 해결하기 위해 간단한 공식을 사용하는 간단한 솔루션입니다. 우리는 숫자의 이진법을 반복할 것입니다. 그리고 숫자에서 세트 비트의 위치를 찾으십시오. i. 결과는 ((total_number
숫자의 자릿수를 바꾸는 프로그램은 숫자의 위치를 바꾸고 순서를 반대로 합니다. 숫자를 abcde라고 가정하고 그 반대는 edcba입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력 n = 786521 출력 125687 숫자의 자릿수를 바꾸려면 MSB(단위 자릿수)에서 숫자의 각 자릿수를 가져와 역 숫자 변수에 추가합니다. 그런 다음 원래 숫자를 10으로 나누고 reverse_number에 10을 곱합니다. 숫자가 0이 됩니다. 이 반복적인 과정은 반복과 재귀의 두 가지 방법으로 수행할 수 있으며 두 가지 방법을 모
여기에서 배열 또는 문자열이 제공됩니다. 우리는 배열이나 문자열의 요소를 뒤집는 프로그램을 만들 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 array = {2, 5, 7, 1, 9} 출력 {9, 1, 7, 5, 2} 입력 string = “Hello!” 출력 !0lleH 프로그램을 생성하기 위해 우리는 배열/문자열의 요소를 반복할 것입니다(둘 다 같은 방식으로 작동합니다). 시작과 끝을 위해 하나의 변수를 사용합니다. 그리고 두 요소를 모두 바꿉니다. 시작 변수를 증가시키고 끝 변수를 감소시
이 문제에서는 이진 트리가 제공됩니다. 우리의 임무는 주어진 나무의 최대 깊이 또는 높이를 찾는 프로그램을 작성하는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 나무의 높이는 3입니다. 트리의 최대 높이를 찾기 위해 왼쪽 및 오른쪽 하위 트리의 높이를 확인하고 둘의 최대값에 1을 더합니다. 이것은 트리의 마지막 노드가 발견되고 하나가 하위 트리의 높이를 찾기 위해 점진적으로 추가되는 것을 계속하는 재귀 프로세스입니다. 이 방법을 사용하여 위의 예를 해결했습니다. 트리의 높이 찾기, 즉 height(3) =m
이 문제에서는 나무가 주어지고 우리의 임무는 재귀를 사용하여 나무의 크기를 계산하는 프로그램을 만드는 것입니다. 트리의 크기는 트리에 존재하는 총 노드 수입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 위 트리의 크기는 5입니다. 트리의 크기를 찾으려면 왼쪽 하위 트리와 오른쪽 하위 트리의 크기를 추가한 다음 1씩 증가시켜야 합니다. 트리의 왼쪽 및 오른쪽 하위 트리 모두에 대해 재귀 함수가 호출됩니다. 하위 트리가 없으면 0을 반환합니다. 이 방법을 사용하여 해결된 위의 예 나무의 크기를 구하려면 크기(3)
이 문제에서는 두 개의 정수 x와 n이 주어집니다. 우리의 임무는 pow(x,n)를 계산하는 프로그램을 작성하는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 x = 5 , n = 3 출력 125 pow(x,n),를 계산하는 프로그램 예시 #include <iostream> using namespace std; float myPow(float x, int y) { if(y == 0) return 1; float temp = myPo
여기에서 링크드 리스트와 인덱스가 주어진다. 연결 리스트에서 N번째 노드를 가져오는 함수를 작성해야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력 linked list = 34 -> 4 -> 9 -> 1 , n = 2 출력 9 n으로 지정된 노드로 이동합니다. 연결 목록에서 노드별로 이동하여 필요한 n번째 위치에 도달할 때까지 인덱스 수를 늘립니다. 프로그램을 설명하는 프로그램, 예시 #include <iostream> using namespace std; class Node{  
이 문제에서는 n개의 요소 배열이 제공됩니다. 우리의 임무는 A의 모든 요소와 자기 자신의 쌍의 합인 크기 n*n의 시퀀스를 생성하는 것입니다. 그리고 형성된 이 합계 배열의 xor 요소를 인쇄합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력 - A (1, 4, 5) 출력 - 0 설명 - B (1+1, 1+4, 1+5, 4+1, 4+4, 4+5, 5+1, 5+4, 5+5) B(2,5,6,5,8,9,6,9,10) Xor of all values = 2^5^6^5^8^9^6^9^10 = 0. 이 문제를 해결하려면 Xor
이 문제에서는 일련의 문자가 주어지며, 우리의 임무는 발생 빈도가 소수인 문자열의 문자 빈도의 XOR을 인쇄하는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 − 튜토리얼 포인트 출력 - 여기서는 문자열의 각 문자의 발생 빈도를 확인한 다음 빈도가 소수인 모든 문자의 XOR을 찾습니다. 이를 위해 프라임 주파수 배열이 생성됩니다. 그런 다음 문자열의 문자 빈도를 맵에 저장한 다음 프라임 빈도 배열과 일치시킵니다. 일치하는 항목이 발견되면 xor가 발견되면 맵의 모든 요소를 반복할 때 필요한 XOR을 찾을 수 있
이 문제에서는 이진 트리와 이진 트리의 두 노드가 제공됩니다. 우리의 임무는 두 노드 사이의 경로에 있는 모든 노드의 XOR을 출력하는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 2와 3 사이에 있는 모든 노드의 xor를 찾아야 합니다. 2번에서 3번, 2번 → 6번 → 1번 → 3번 경로입니다. 우리는 2^3^1^3을 찾을 것입니다. 출력 - 이 문제를 해결하려면 한 노드에서 다른 노드로 가는 경로를 찾아야 합니다. 이를 위해 루트에서 두 노드로의 경로에서 모든 노드의 XOR을 찾습니다. 이 작업을 수행할
이 문제에서는 n개 요소의 배열이 주어지고 배열의 시작점에서 끝점까지의 범위에 있는 몇 가지 쿼리가 있습니다. 우리의 임무는 범위 내에서 여러 번 나타난 요소의 XOR을 두 번 찾는 것입니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력 - array = {1, 2, 3, 1, 1, 2, 2, 3} querries = 2 R = 4 L = 2, R = 5 L = 2, R = 7 출력 - 0 1 0 이 문제에 대한 해결책은 매우 쉽습니다. 각 쿼리에 의해 주어진 범위 내에서 배열의 모든 요소에 대한 XOR의 합을 찾을 것입
이 문제에서 n개의 트리가 주어지고 트리의 노드인 쿼리가 있습니다. 우리의 임무는 주어진 노드에 의해 형성된 하위 트리의 모든 노드의 XOR을 출력하는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 쿼리 - {1, 6, 5} 출력 - 0 0 5 설명 - 1^6^3^2^4^7^5 6^2^4 5 이 문제를 해결하기 위해 트리를 한 번 탐색하여 하위 트리의 모든 노드에 대한 xor를 계산하고 저장합니다. 이제 하위 노드인 경우 하위 트리의 모든 노드에 대한 xor를 계산한 다음 지정된 모든 하위 트리에 대해 계산합니다
이 문제에서는 범위를 나타내는 두 개의 정수 L과 R이 제공됩니다. 우리의 임무는 [L, R] 범위 내의 모든 요소의 xor를 찾는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 - L=3, R =6 설명 − 3^4^5^6 = 이 문제를 해결하기 위해 우리는 R의 MSB를 찾을 것입니다. 답의 MSB는 R보다 크지 않을 것입니다. 이제 0에서 MSB까지의 비트 수 카운트의 패리티를 찾을 것입니다. 이제 i번째 비트의 패리티 카운트를 찾기 위해 i번째 비트의 상태가 2번째 숫자마다 변경됨을 알 수 있습니다. L ~
이 문제에서는 n 요소의 배열이 제공됩니다. 우리의 임무는 배열의 요소에서 생성된 모든 가능한 하위 배열(순서대로 취함)의 XOR을 XOR로 인쇄하는 것입니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 - 배열 ={1, 3, 6, 8} 출력 - 0 설명 - (1) ^ (3) ^ (6) ^ (8) ^ (1^3) ^ (3^6)^ (6^8) ^ (1^3^6) ^ (3^6^8) ^ (1^3^6^8) 이 문제를 해결하기 위해 간단한 솔루션은 모든 하위 배열을 반복하고 xor를 찾는 것입니다. 그러나 이것은 비효율적인 접근 방