이 문제에서 문자열이 주어지고 해당 문자열의 문자에서 가능한 모든 회문 순열을 인쇄해야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다 - 입력 - 문자열 =abb 출력 - 아바 바브 이 문제를 해결하려면 문자열의 문자를 가져와서 이 문자를 사용하여 모든 회문 문자열을 하나씩 생성해야 합니다. 1단계 − 문자열이 회문인지 확인하고 불가능 인쇄 그렇지 않은 경우. 2단계 − 회문을 만들 수 있으면 반으로 만들고 문자열의 각 문자를 사전순으로 선택합니다. 3단계 − 생성된 순열을 통과하고 짝수 길이 문자열과 홀수 주파수
이 문제에서는 정수 배열과 정수 합이 주어지며 합이 합 값과 같은 모든 정수 쌍을 인쇄해야 합니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 - 배열 ={1, 6, -2, 3} 합계 =4 출력 - (1, 3) , (6, -2) 여기에 주어진 합계 값과 쌍이 필요합니다. 문제에 대한 간단한 해결책은 합계를 생성하는 요소 쌍을 확인하는 것입니다. 이것은 배열을 순회하고 합계 값으로 합산되는 배열의 숫자를 찾아 수행할 수 있습니다. 예시 이 프로그램은 솔루션을 설명합니다 - #include <iostream> us
이 문제에서는 고유한 정수 배열과 합계가 제공됩니다. 그리고 우리는 같은 합을 형성할 수 있는 삼중항을 찾아야 합니다. 문제를 해결하기 위해 예를 들어 보겠습니다 - Input : array = {0 , 2 , -1 , 1, -2} Sum = 1 Output : 1 2 -2 0 2 -1 이 문제를 해결하기 위해 우리는 합을 제공하는 모든 삼중항을 찾을 것입니다. 간단한 접근 방식은 3개의 루프를 사용하고 요소의 합을 찾고 적절한 삼중항을 반환하는 것입니다. 예시 #include <iostream> using names
이 문제에서는 정렬된 숫자 배열이 제공되며 산술 진행 형식의 are가 있는 삼중항을 찾아야 합니다. 산술 진행 연속된 항의 차이가 동일한 일련의 숫자입니다. 문제를 더 잘 이해하기 위해 예를 들어 보겠습니다 - Input : array = {2 , 5 , 7, 8 , 9 , 10} Output : 2 5 8 5 7 9 7 8 9 8 9 10 이 문제를 해결하기 위해 간단한 솔루션은 3개의 루프를 실행하고 AP에 있는 경우 모든 3중항을 확인하는 것입니다. 그러나 이 방법의 시간 복잡도는 n3입니다. . 더 나은 솔루션은 해
이 문제에서는 n개의 고유 정수 배열이 제공됩니다. 그리고 최대 주파수를 갖는 배열의 두 정수의 합을 찾아야 합니다. 문제에는 여러 솔루션이 있으며 모두 찾아야 합니다. Input : array = { 1, 12, 5, 7, 9, 11} Output : 16 12 설명 - 합 16과 12는 두 번 발생합니다. 5 + 11 = 16 & 7 + 9 = 16 1 + 11 = 12 & 5 + 7 = 12 이제 이 문제를 해결하기 위해 문제에 대한 접근 방식은 모든 합 쌍의 발생을 확인한 다음 최대 횟수로 쌍을 인쇄하는 것
이 문제에서 우리는 이진 트리와 합 S가 주어집니다. 그리고 루트에서 시작하여 주어진 합과 동일한 합을 제공하는 트리의 임의의 노드까지의 경로를 찾아야 합니다. 입력 Sum = 14 Output : path : 4 10 4 3 7 이 문제에 대한 해결책을 찾으려면 이진 트리의 선주문 순회를 찾아야 합니다. 그런 다음 주어진 합계가 되는 경로를 찾습니다. 예시 #include<bits/stdc++.h> using namespace std; struct Node{ int key;
이 문제에서는 크기가 n인 문자열이 제공됩니다. 그리고 문자열의 문자를 알파벳 순서로 사용하여 생성할 수 있는 모든 가능한 회문 순열을 인쇄해야 합니다. 문자열을 사용하여 회문을 생성하지 않은 경우 -1을 인쇄합니다. 주제를 더 잘 이해하기 위해 예를 들어 보겠습니다 - Input: string = “abcba” Output : abcba bacba 이제 이 문제를 해결하려면 가능한 모든 회문을 찾아 알파벳순(사전순)으로 정렬해야 합니다. 또는 다른 방법은 문자열에서 만들어진 사전순으로 첫 번째 회문을 찾는
이 문제에서는 고유한 정수 배열이 제공됩니다. 그리고 배열에 있는 모든 정수 쌍(양수 및 음수)을 반환해야 합니다. 문제를 더 잘 이해하기 위해 예를 들어 보겠습니다 - Input: array = {1 , 4 , 7 , -1, 2, 5, -7} Output: -11 -33 문제를 해결하는 쉬운 방법은 두 개의 루프를 사용하고 양수 쌍을 찾는 것입니다. 그러나 이 솔루션은 복잡한 솔루션이 될 것이며 n2차수의 시간 복잡도를 가질 것입니다. 여기서 n은 배열의 크기입니다. 그러나 우리는 문제를 해결하기 위해 보다 효율적인 접근 방
이 문제에서는 나무가 주어집니다. 그리고 짝수 노드와 홀수 노드가 있는 모든 레벨을 인쇄해야 합니다. 개념을 더 잘 이해하기 위해 예를 들어보겠습니다. 출력 - Levels with odd number of nodes: 1, 3, 4 Levels with even number of nodes: 2 설명 − 첫 번째 레벨은 1개의 요소(홀수), 2번째 레벨은 2개의 요소(짝수), 3번째 레벨은 3개의 요소(홀수), 4번째 레벨은 1개의 요소(짝수)를 포함합니다. 이제 이 문제를 해결합니다. 각 수준에서 노드 수를 찾고 그
이 문제에서는 문자열이 주어지고 문자열에서 발생하는 횟수와 함께 중복되는 모든 문자를 찾아야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다 - Input: TutorialsPoint Output: t (3) o (2) i (2) 설명 - 각 문자의 발생 빈도는 t → 3입니다. 유 → 1; o → 2; r → 1; 나는 → 2; a → 1; s → 1; n → 1. 이제 이 문제를 해결하기 위해 문자 수를 찾아 문자열에서 배열에 저장합니다. 그런 다음 freq에 문자와 발생을 인쇄하십시오. 1 이상입니다. 예시 # inc
이 문제에서는 무방향 그래프가 주어지고 그래프에서 형성되는 모든 주기를 인쇄해야 합니다. 무방향 그래프 함께 연결된 그래프입니다. 단방향 그래프의 모든 모서리는 양방향입니다. 무방향 네트워크라고도 합니다. 주기 그래프 데이터 구조에서 모든 정점이 순환을 형성하는 그래프입니다. 문제를 더 잘 이해하기 위해 예를 살펴보겠습니다. − 그래프- 출력- Cycle 1: 2 3 4 5 Cycle 2: 6 7 8 이를 위해 그래프의 몇 가지 속성을 사용할 것입니다. 그래프 채색 방법을 사용하고 순환 그래프에서 발생하는 모
이 문제에서는 N개의 요소 배열이 제공됩니다. 그리고 모든 요소의 합은 정수 M으로 나눌 수 있어야 합니다. Input : array = {4, 7, 3} ; M = 3 Output : 5+4+3 ; 5+4-3 이 문제를 해결하려면 얻을 수 있는 모든 합을 찾는 데 사용할 수 있는 거듭제곱 집합의 개념을 알아야 합니다. 이 합계에서 M으로 나누어지는 모든 것을 출력하십시오. 알고리즘 Step 1: Iterate overall combinations of ‘+’ and ‘-’ using p
이 문제에서 문자열 str이 주어지고 모든 문자 조합을 사전순으로 인쇄해야 합니다. 문제를 더 잘 이해하기 위해 예를 들어 보겠습니다 - Input: str = ‘XYZ’ Output : X XY XYZ XZ XZY Y YX YXZ YZ YZX Z ZX ZXY ZY ZYX 이 문제를 해결하기 위해 문자열의 모든 문자 조합을 인쇄합니다. 이를 위해 문자열의 문자를 저장할 맵 데이터 구조가 필요합니다. 구현을 위해 모든 조합을 추적하기 위해 역추적을 사용해야 합니다. 예시 #include <bits/std
이 문제에서는 정수 n이 주어집니다. 그리고 우리는 형성될 수 있는 숫자의 모든 부분 문자열을 출력해야 하지만 문자열 변환은 허용되지 않습니다. 즉, 정수를 문자열이나 배열로 변환할 수 없습니다. 주제를 더 잘 이해하기 위해 예를 들어 보겠습니다 - Input: number =5678 Output: 5, 56, 567, 5678, 6, 67, 678, 7, 78, 8 이 문제를 해결하려면 수학적 논리를 사용해야 합니다. 여기서는 최상위 비트를 먼저 인쇄한 다음 연속 비트를 인쇄합니다. 알고리즘 Step1: Take a 10&rs
이 문제에서는 배열이 주어지고 배열의 요소를 사용하여 형성할 수 있는 주어진 크기 r의 모든 부분 집합을 인쇄해야 합니다. 주제를 더 잘 이해하기 위해 예를 들어 보겠습니다 - Input: array = {3, 5, 6} r = 2 Output: 3 5 3 6 5 6 이 문제에서는 배열 숫자의 모든 조합을 찾아야 합니다. 그리고 이미 세트에 있는 r비트 조합을 제외합니다. 예시 #include <iostream> using namespace std; void printSubset(int arr[], int n, int
이 문제에서는 문자열이 주어지고 문자열의 모든 하위 시퀀스를 인쇄해야 합니다. 생성된 하위 문자열은 문자열의 요소를 삭제하여 생성되지만 순서는 동일하게 유지됩니다(즉, 순서는 변경할 수 없음). 주제를 더 잘 이해하기 위해 예를 들어 보겠습니다 - Input: xyz Output: x,y,z,xy,yz,xz,xyz 설명 − 위의 예에서 부분 문자열을 생성하기 위해 삭제된 문자만 볼 수 있습니다. 아니요, 재정렬이 발생합니다. 이 문제를 해결하는 방법은 여러 가지가 있을 수 있습니다. 여기서는 방법을 이해하기 위해 그 중 몇 가
이 문제에서는 문자열이 주어지고 주어진 문자열에서 부분 문자열을 찾아야 합니다. 찾을 하위 문자열은 모음으로 시작하고 상수 문자로 끝나야 합니다. 문자열 문자 배열입니다. 이 문제에서 생성될 부분 문자열은 문자열의 일부 문자를 삭제하여 생성할 수 있습니다. 그리고 문자열의 순서를 바꾸지 않고. Input: ‘abc’ Output: ab, ac, abc 이 문제를 해결하기 위해 문자열을 반복하고 모음을 수정하고 다음 시퀀스를 확인합니다. 솔루션을 찾는 알고리즘을 살펴보겠습니다 − 알고리즘 Step 1: I
이 문제에서 문자열이 주어지고 문자열의 모든 하위 시퀀스를 인쇄해야 합니다. 부분 문자열은 요소를 삭제하여 형성됩니다. 또한 문자열의 순서를 변경해서는 안 됩니다. 문제를 더 잘 이해하기 위해 예를 들어 보겠습니다 - Input: string = “xyz” Output: x y xy z xz yz xyz 이 문제를 해결하기 위해 문자열의 첫 번째 문자를 고정하는 것부터 시작하여 모든 하위 문자열을 찾고 그에 따라 하위 시퀀스를 찾은 다음 문자열과 하위 시퀀스의 다음 문자로 이동합니다. 예시 public cl
이 문제에서는 문자열이 주어지고 주어진 문자열에서 부분 문자열을 찾아야 합니다. 찾을 하위 문자열은 모음으로 시작하고 상수 문자로 끝나야 합니다. 문자열 문자 배열입니다. 이 문제에서 생성될 부분 문자열은 문자열의 일부 문자를 삭제하여 생성할 수 있습니다. 그리고 문자열의 순서를 바꾸지 않고. Input: ‘abc’ Output: ab, ac, abc 이 문제를 해결하기 위해 문자열을 반복하고 모음을 수정하고 다음 시퀀스를 확인합니다. 솔루션을 찾는 알고리즘을 살펴보겠습니다 − 알고리즘 Step 1: I
이 문제에서 정수 값의 배열이 주어지고 이 배열에서 합이 0인 모든 하위 배열을 인쇄해야 합니다. 주제를 더 잘 이해하기 위해 예를 들어 보겠습니다. 입력:배열 =[-5, 0, 2, 3, -3, 4, -1]출력:합계가 0인 하위 배열은 1에서 4까지입니다. 합계가 0인 하위 배열은 5에서 7까지 합계가 0인 하위 배열은 다음과 같습니다. 0에서 7까지 이 문제를 해결하기 위해 가능한 모든 하위 배열을 확인합니다. 그리고 이 하위 배열의 합이 0인지 확인하고 인쇄합니다. 이 솔루션은 이해하기 쉽지만 솔루션이 복잡하고 시간 복잡도가