-
C++のケースを無視する独自のstrcmpを作成します
ここでは、2つの文字列を比較するが、文字列の文字の大文字小文字を無視するstrcmp(文字列比較)関数を作成する必要があります。この関数は、string1 string2の場合は1を返します。 問題を理解するために例を見てみましょう 入力 string1 = “Hello” , string2 = “hello” 出力 0 string2 [i]の場合、1を返します。string1[i]
-
C ++で独自のmemcpy()とmemmove()を記述します
memcpy() functionは、ソースの場所から宛先の場所にデータをコピーするために使用される組み込み関数です。 memcpy関数のプロトタイプ- void * memcpy(void * destination_location、void * source_location、size_t size) ソースから宛先にデータを1文字ずつコピーします。 ソリューションの実装を示すプログラム 例 #include<stdio.h> #include<string.h> void MemcpyFunc(void *dest, void *src, size_
-
C ++で独自のatoi()を作成する
cプログラミング言語のatoi()関数は、文字列から整数への変換を処理するために使用されます。この関数は文字列を入力として受け取り、整数型の値を返します。 構文 int atoi(const char string) 受け入れられたパラメータ − atio()関数は、同等の整数に変換される入力として文字列を受け入れました。 返品タイプ −関数は整数値を返します。値は有効な文字列に相当する整数になります。それ以外の場合は0が返されます。 atoi()関数の実装- 文字列の各文字を取得し、前の結果に10を掛けた数値を加算して整数を作成します。 負の整数の場合、文字列の最初の文字が-である
-
2つのツリーがC++で同一であるかどうかを判断するコードを記述します
この問題では、2本の木が与えられます。私たちのタスクは、2つのツリーが同一であるかどうかを確認するコードを作成することです。 配列の要素が同じ値と方向を持っている場合、2つのツリーは同一であると言われます。 例 両方のツリーの値と要素の位置が同じであるため、両方のツリーは同じです。 2つのツリーが同一であるかどうかを確認するには、ノードノードからの各ノードに移動し、それらが等しいかどうかを段階的に確認します。ノードのいずれかのポイントが等しくない場合は、ツリーが同一でないことを示す-1を返します。ツリー全体がトラバースされるか、両方のツリーが空になり、ツリーが
-
C ++でpow(x、y)の反復O(Log y)関数を記述します
この問題では、2つの整数xとyが与えられます。私たちのタスクは、0(Log y)の時間計算量でタスクを完了する反復アプローチを使用して、pow(x、y)と同等の関数を作成することです。 問題を理解するためにいくつかの例を見てみましょう。 入力 x = 7 , y = 3 出力 343 pow(x、y)の反復関数は、yの奇数値にxを掛けて結果を反復および更新し、反復ごとにxをx2に更新します。 ソリューションの実装を示すプログラム 例 #include <iostream> using namespace std; void calcPower(int x, unsigned
-
C++で数値が3の倍数であるかどうかを確認するための効率的なメソッドを作成する
ここでは、与えられた数が3の倍数であるかどうかをチェックするために使用されるプログラムを作成する必要があります。 一般的な解決策は簡単な解決策であり、数値のすべての桁を加算し、合計が3の倍数である場合、数値は3で割り切れます。それ以外の場合は割り切れません。しかし、このソリューションは最も効率的なソリューションではありません。 効率的な解決策は、数値の2進表現でビット数を使用することです。 奇数位置のセットビット数と偶数位置のセットビット数の差が3の倍数である場合、その数は3の倍数です。 ループを使用して、数値のビットをシフトし、偶数と奇数の位置にあるビットの数をカウントします。最後に
-
C++で数値のビットを反転する効率的なCプログラムを作成する
この問題では、符号なし整数nが与えられます。私たちのタスクは、数値のすべてのビットを逆にすることによって生成された数値を返すプログラムを作成することです。 問題を理解するために例を見てみましょう 入力 n = 1 出力 2147483648 説明 binary of 1 is 000...0001, the reverse is 100...0000. この問題を解決するための簡単な解決策は、簡単な式を使用することです。数値の2進数をループします。そして、数の中で設定されたビットの位置を見つけて、それを言うことができます。結果は、式((total_number_of_bits)-1)-iを
-
C++で数値の桁を逆にするプログラムを作成します
数字の桁を逆にするプログラムは、桁の位置を入れ替えて、その順序を逆にします。 数abcdeで、その逆はedcbaであると仮定しましょう。 問題を理解するために例を見てみましょう 入力 n = 786521 出力 125687 数値の桁を反転するには、MSB(単位桁)から数値の各桁を取得し、それを逆数値変数に追加します。その後、元の数値を10で除算し、reverse_numberに10を掛けます。これは次のように実行されます。数字は0になります。 この反復プロセスは、反復と再帰の2つの方法で実行できます。作成するプログラムを作成して、両方の方法を説明します。 例 方法1:反復アプローチ
-
C++で配列または文字列を逆にするプログラムを作成します
ここでは、配列または文字列が与えられます。配列または文字列の要素を逆にするプログラムを作成します。 問題を理解するために例を見てみましょう 入力 array = {2, 5, 7, 1, 9} 出力 {9, 1, 7, 5, 2} 入力 string = “Hello!” 出力 !0lleH プログラムを作成するには、配列/文字列の要素をループします(どちらも同じように機能します)。開始と終了の1つの変数を取ります。そして、両方の要素を交換します。開始変数をインクリメントし、終了変数をデクリメントします。開始変数の値が終了変数より小さくなるまで、スワッピングは続行さ
-
C++でツリーの最大の深さまたは高さを見つけるプログラムを作成する
この問題では、二分木が与えられます。私たちの仕事は、与えられた木の最大の深さまたは高さを見つけるプログラムを書くことです。 問題を理解するために例を見てみましょう 木の高さは3です。 ツリーの最大の高さを見つけるために、その左右のサブツリーの高さを確認し、両方の最大値に1を追加します。これは再帰的なプロセスであり、ツリーの最後のノードが検出され、サブツリーの高さを検出するために1つが段階的に追加されます。 上記の例は、この方法を使用して解決されました。 木の高さを見つける、つまり、height(3)=max(height(5)、height(7))+1。 このために、値5
-
ツリーのサイズを計算するプログラムを作成する-C++での再帰
この問題では、ツリーが与えられ、再帰を使用してツリーのサイズを計算するプログラムを作成することがタスクです。 ツリーのサイズは、ツリーに存在するノードの総数です。 問題を理解するために例を見てみましょう 上記の木のサイズは5です。 ツリーのサイズを見つけるには、左のサブツリーと右のサブツリーのサイズを追加してから、1ずつインクリメントする必要があります。再帰関数は、ツリーの左と右の両方のサブツリーに対して呼び出されます。また、サブツリーが見つからない場合は0を返します。 この方法を使用して解決された上記の例 木のサイズを見つけるには、 size(3)=size(5)+
-
C ++でpow(x、n)を計算するプログラムを作成します
この問題では、2つの整数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 = myPow(x, y / 2);  
-
C++のリンクリストでN番目のノードを取得する関数を記述します
ここでは、リンクリストとインデックスが提供されています。リンクリストのN番目のノードを取得する関数を作成する必要があります。 問題を理解するために例を見てみましょう 入力 linked list = 34 -> 4 -> 9 -> 1 , n = 2 出力 9 nで指定されたノードに移動します。リンクリスト内のノードごとに移動し、必要なn番目の位置に達するまでインデックスカウントを増やします。 プログラムを説明するプログラム 例 #include <iostream> using namespace std; class Node{  
-
C++の配列のすべての可能なペアの合計のXOR
この問題では、n個の要素の配列が与えられます。私たちのタスクは、サイズn * nのシーケンスを生成することです。その要素は、Aのすべての要素とそれ自体のペアの合計です。そして、形成されたこの合計配列の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のいくつかの
-
C++の文字列内の文字のプライム周波数のXOR
この問題では、文字列が与えられます。タスクは、出現頻度が素数である文字列の文字の頻度のXORを出力することです。 問題を理解するために例を見てみましょう 入力 − TutorialsPoint 出力 − ここでは、文字列の各文字の出現頻度を確認し、その頻度が素数であるすべての文字のXORを求めます。このため、プライム周波数の配列が作成されます。次に、文字列の文字の頻度をマップに格納し、プライム頻度配列と照合します。一致するものが見つかった場合、xorが見つかります。マップのすべての要素にループすると、必要なXORを見つけることができます。 例 ソリューションの実装を示すプログラム
-
C++のバイナリツリー内の任意の2つのノード間のパスのXOR
この問題では、二分木と二分木の2つのノードが与えられます。私たちのタスクは、2つのノード間のパスにあるすべてのノードのXORを出力することです。 問題を理解するために例を見てみましょう 2から3までのすべてのノードの排他的論理和を見つける必要があります。 2から3、2→6→1→3へのパス。 2 ^ 3 ^ 1^3が見つかります。 出力 − この問題を解決するには、あるノードから別のノードへのパスを見つける必要があります。このために、ルートから両方のノードへのパスにあるすべてのノードのXORを見つけます。これを行う場合、ルートノードからトラバースするときに2つのケースがありま
-
C++の特定の範囲に偶数回出現した数値のXOR
この問題では、n個の要素の配列が与えられ、配列の開始点から終了点までの範囲のクエリがいくつかあります。私たちのタスクは、範囲内に何度も出現した要素のXORを2つ見つけることです。 問題を理解するために例を見てみましょう 入力 − 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の合計が見つかります。このために、プレフィックス合計xorを使用します。 例 ソリュ
-
C++の特定のノードのサブツリー内のすべてのノードのXOR
この問題では、nツリーが与えられ、ツリーのノードであるクエリがいくつかあります。私たちのタスクは、指定されたノードによって形成されたサブツリーのすべてのノードのXORを出力することです。 問題を理解するために例を見てみましょう クエリ − {1、6、5} 出力 − 0 0 5 説明 − 1^6^3^2^4^7^5 6^2^4 5 この問題を解決するために、ツリーを1回トラバースして保存することにより、サブツリーのすべてのノードのxorを計算します。ここで、子ノードの場合はサブツリーのすべてのノードのxorを計算し、次に指定されたすべてのサブツリーを計算します。結果を保存す
-
C ++の指定された範囲[L、R]のすべての要素のXOR
この問題では、範囲を示す2つの整数LとRが与えられます。私たちのタスクは、範囲[L、R]内のすべての要素のxorを見つけることです。 問題を理解するために例を見てみましょう 入力 − L =3、R =6 説明 − 3 ^ 4 ^ 5 ^ 6 = この問題を解決するために、RのMSBを見つけます。答えのMSBはRより大きくなりません。ここで、0からMSBまでのビット数のカウントのパリティを見つけます。 ここで、i番目のビットのパリティカウントを見つけるために、i番目のビットの状態が2番目の数値ごとに変化することがわかります。 LからRの範囲に設定されたすべてのi番目のビットについても同
-
C++のすべてのサブアレイXORのXOR
この問題では、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) この問題を解決するための簡単な解決策は、すべてのサブアレイを反復処理してxorsを見つけることです。しかし、これは非効率的なアプローチです。より良いアプローチは、すべて