-
C++での文字列変換のインプレースアルゴリズム
特定の文字列について、偶数に配置されたすべての要素を文字列の最後に転送します。要素を転送するときは、すべての偶数位置と奇数位置の要素の相対的な順序を同じに保ちます。 たとえば、指定された文字列が「a1b2c3d4e5f6g7h8i9j1k2l3m4」の場合、その文字列を「abcdefghijklm1234567891234」にインプレースでO(n)時間計算量に変換します。 次の手順は次のとおりです 3 ^ k + 1の形式のサイズの最も高いプレフィックスサブ文字列を切り取ります。このステップでは、3 ^ k + 1がn(文字列の長さ)以下になるように、最も高い非負の整数kを見つけます。
-
代替セグメントの角度がC++で指定されている場合の、弦と接線の間の角度?
与えられた円の場合、弦と接線は特定の点で満たされます。代替セグメントの角度が提供されます。ここでの主な仕事は、弦と接線の間の角度を見つけることです。 例 Input: z = 40 Output: 40 degrees Input: z = 60 Output: 60 degrees アプローチ 角度QPRは、代替セグメントで指定された角度です。 弦と円の間の角度=角度RQY=a 接線の中心から引かれた線は垂直なので、 したがって、角度CQR =90-a として、CQ =CR=円の半径 したがって、角度CRQ =90-a さて、三角形のCQRで、
-
配列メンバーはC++で深くコピーされていますか?
C / C ++の場合、構造体(またはC ++のクラスのみ)変数を同じ型の別の変数に割り当てることができます。構造体変数を別の変数に割り当てるときに、変数のすべてのメンバーが他の構造体変数にコピーされます。この場合、構造が配列で構成されているとどうなるかという疑問が生じます。 次に、配列について説明する必要があります。注意すべき主な点は、配列メンバーは浅いコピーとしてコピーされないということです。配列メンバーの場合、コンパイラは自動的にディープコピーを実行します。以下のプログラムでは、structtestは配列メンバーstr1[]で構成されています。 st1をst2に割り当てることができる場
-
C ++のリンクリストに子音と母音のノードを配置しますか?
この手法では、母音をキーとして持つノードを最初に転送し、子音を最後に転送します。この場合、順序も維持します。例を以下に示します- Input: A-M-A-Z-O-N Output: A-A-O-M-Z-N Code (Complexity: O(N), Space O(1)) 例 #include<iostream> using namespace std; class Node1{ public: char var1; Node1 *next1; Node1(char v,N
-
C ++では、指定された位置に開き角かっこが含まれるようなバランスの取れた式ですか?
与えられた整数mと位置の配列position[](1 <=length(position [])<=2m)の場合、長さ2mで構成できる適切なブラケット式の方法の数を見つけます。指定された位置には開き角かっこがあります。 注:position []配列は、(1ベースのインデックス)[0、1、1、0]の形式で提供されます。ここで1は、オープンブラケットを設定する位置を示しています。値が0の場合の位置では、開きブラケットまたは閉じブラケットのいずれかを設定できます。 例 Input: n = 2, position[] = [1, 0, 1, 0] Output: 1 The only possi
-
C ++でのビンパッキング問題(使用されるビンの数を最小化する)?
それぞれ容量Cの異なる重みとビンのm個の要素が与えられた場合、実装されたビンの総数が最小になるように、各要素をビンに割り当てます。すべての要素の重みがビンの容量よりも小さいと想定する必要があります。 アプリケーション 複数のディスクにデータを配置します。 トラックなどのコンテナの積み込み。 固定長のラジオ/テレビ局の休憩時間に広告を詰め込む。 ジョブスケジューリング。 例 Input: weight[] = {4, 1, 8, 1, 4, 2} Bin Capacity c = 10 Output: 2 We require at least 2 bins to a
-
C ++のバイナリインデックスツリーまたはフェンウィックツリー?
数値のフラット配列と比較する場合、フェンウィックツリーは、要素の更新とプレフィックスの合計の計算という2つの操作の間ではるかに優れたバランスを実現します。 m個の数値のフラット配列の場合、要素またはプレフィックスの合計を格納できます。最初のインスタンスの場合、プレフィックスの合計を計算するには線形時間が必要です。 2番目のインスタンスの場合、配列要素の変更または更新には線形時間が必要です(どちらの場合も、他の操作は一定時間で実行できます)。フェニック木は、両方の操作をO(log m)時間で実行できるようにします。これは、数値をツリーとして表すことによって取得されます。各ノードの値は、そのサブツ
-
STLセットC++を使用した二分木から二分探索木への変換?
特定のバイナリツリーの場合、バイナリツリーの元の構造をそのまま維持するような方法でバイナリ検索ツリーに変換します。 このソリューションでは、アレイベースのソリューションではなく、C++STLのセットが使用されます。 例 例1 入力 11 / \ 3 8 / \ 9 5 出力 9 / \ 5 11  
-
C ++の二項ヒープ?
二項ヒープは、二分ヒープの拡張として定義され、二分ヒープによって提供される他の操作と一緒に、より高速なマージまたは結合操作を提供します。 二項ヒープは、二項ツリーのコレクションとして扱われます。 二項ツリーとは何ですか? 次数kの二項ツリーは、次数k-1の2つの二項ツリーを取得し、一方を左端の子またはその他として扱うことで構築できます。 次数kの二項ツリーには以下のプロパティがあります。 BinomialTreeのノード数は正確に2kです。 。 BinomialTreeの深さはkです。 深さiには正確にkCiノードがあります。ここでi=0、1 、。 。 。 、k。
-
C++でのZigZag変換
文字列が「IWANTTOLEARNCODE」のようなものであるとします。この文字列は、nと言う特定の行数にジグザグに書き込まれます。つまり、パターンは次のようになります I T A O W N O E R C D A L N E -「ITAOWNOERCDALNE」のような行を読むと したがって、文字列と行数を取得して、この種の操作を実行できる1つのモジュールを作成する必要があります。 これを解決するために、次の手順に従います n =1の場
-
C ++での文字列から整数(atoi)
最初の非空白文字に到達するまで、必要な数の空白文字を最初に破棄するモジュールを設計する必要があるとします。その後、この文字から始めて、オプションの最初のプラス記号またはマイナス記号の後に数字がいくつも続き、それらを数値として解釈します。 str内の非空白文字の最初のシーケンスが有効な整数でない場合、またはstrが空であるか空白のみが含まれているためにそのようなシーケンスが存在しない場合、変換は実行されません。 したがって、入力が「-45」の場合、出力は-45になります。 これを解決するには、次の手順に従います- sign:=1、base:=0、i:=0、n:=文字列のサイズs i<
-
C++でのDEQUECRBEGIN()
与えられたタスクは、C++でのdeque::crbegin()の動作を示すことです。 Dequeは両端キューであり、両端で挿入と削除を行います。つまり、前面と背面を高性能で挿入します。これに対して、ベクトルは最後で高性能の挿入を行います。つまり、背面のみです。 また、コンポーネントへのランダムアクセスも提供します。 insert()を使用して、デキュー内の代替コンポーネントの間にパーツを挿入することはできますが、そのパフォーマンスはベクトルのように賢明ではありません。 deque ::crbegin()とは何ですか? Deque ::crbegin()は、crbeginが定数の逆開始で
-
C++でのDEQUECBEGIN()
与えられたタスクは、C++STLでのdeque::cbegin()の動作を示すことです。 Deque ::cbegin()関数とは何ですか? deque ::cbegin()は、dequeヘッダーファイルの下にある関数です。cbegin()は、dequeコンテナの最初の要素を指すイテレータポインタを返します。 注 − cbegin()関数には引数がありません。 構文 deq.cbegin(); ここで、deqはdequeのオブジェクトです。 戻り値 この関数はconst_iteratorを返します。 const_iteratorは、dequeコンテナの最初の要素を指すために使用され
-
Isupper()とIslower()およびC++でのそれらのアプリケーション
C ++の関数isupper()およびislower()は、「ctype.h」ヘッダーファイルに存在する組み込み関数です。指定された文字または文字列が大文字か小文字かをチェックします。 isupper()とは何ですか? この関数は、指定された文字列に大文字が含まれているかどうかを確認するために使用されます。また、入力として1文字ある場合は、その文字が大文字であるかどうかを確認します。 構文 int isupper ( int arg) 説明 この関数は、文字列に大文字が含まれている場合はゼロ以外の値を返し、それ以外の場合は0を返すため、intとしての戻り型を持ちます。チェックする文字を含
-
整数関数ポインタの配列へのポインタを返すC/C++関数を宣言します
与えられた配列でのタスクは、整数関数ポインターの配列へのポインターを返す関数を作成することです。 そのために、2つの値を入力し、2つの値の両方を比較する関数と、より大きな値のメモリアドレスを返す関数ポインタを呼び出し、結果として出力します。関数ポインタは、さまざまな時間にさまざまな関数のアドレスを渡すために使用されるため、関数がより柔軟で抽象的になります。したがって、関数ポインターを使用すると、実行時の値に基づいて実行する関数を選択する簡単な方法を提供することで、コードを簡略化できます。 関数big()の説明 プログラムは、渡された2つの整数値を比較し、大きい方の値のメモリアドレスを返す関
-
C ++ STLのiswblank()関数
C ++のiswblank()関数は、指定されたワイド文字が空白でないかどうかを確認するために使用されます。これは、C言語の「ctype.h」ヘッダーファイルとC ++標準テンプレートライブラリ(STL)の「cctype」ヘッダーファイルにあります。 iswblankの構文は次のとおりです int iswblank(wint_t ch) 返品タイプ −空白が含まれている場合はゼロ以外の値を返し、含まれていない場合は値0を返します。 パラメータ − ch −これはチェックする文字です。 例 入力 − string str =“ I Love Myself” 出力 −スペースの総数は−
-
3C++で最も近い
n個の整数と1つのターゲットを持つ配列numがあるとします。合計がターゲットに最も近くなるように、numsで3つの整数を見つける必要があります。 3つの整数の合計を返します。各入力には正確に1つのソリューションがあるという1つの仮定をとることができます。したがって、指定された配列が[-1,2,1、-4]のようで、ターゲットが1の場合、トリプレットは[-1,2,1]になり、これは最も近い合計、つまり2になります。 これを解決するには、次の手順に従います- 配列nums、ans:=0、diff:=Infinity、n:=numsのサイズを並べ替えます 0からn–1の範囲のiの場合 左:=i +
-
C ++ STLのiswcntrl()関数
C ++標準テンプレートライブラリ(STL)のiswcntrl()関数は、指定されたワイド文字が制御文字であるかどうかを確認するために使用されます。制御文字は、C / C ++の文字であり、表示画面の印刷位置を占めません。 Iswcntrl()関数は、cwctypeヘッダーファイルで定義されています。 iswcntrl()関数の構文は次のとおりです int iswcntrl (wint_t c) パラメータ − c −これはチェックする文字です。 戻り値 − cが制御文字の場合はゼロとは異なる値(つまり、ゼロ以外の値)、それ以外の場合はゼロ値。 以下のプログラムで使用されているアプローチ
-
C ++ STLのiswdigit()関数
C ++ STLでは、iswdigit()関数は、指定されたワイド文字が10進数文字か他の文字かを確認するために使用される組み込み関数です。この関数は、C /C++のcwctypeヘッダーファイルにあります。 10進数の文字は何ですか? 10進数の文字は、0から始まる数値です。つまり、0、1、2、3、4、5、6、7、8、9です。 iswcntrl()関数の構文は次のとおりです int iswdigit() (wint_t c) パラメータ − cは、チェックするワイド文字、wint_tにキャストする文字、またはWEOF(wint_tは整数型)です。 戻り値 −実際にcが10進数の場合
-
C ++ STLのiswlower()関数
C ++標準テンプレートライブラリ(STL)では、iswlower()関数を使用して、指定されたワイド文字が小文字であるかどうかを確認します。そうでない場合、関数はゼロ値を返します。 ASCII値が97〜122の文字、つまりa〜zは、小文字の英字です。 Iswlower()関数は、C /C++のcctypeヘッダーファイルにあります。 iswlower()の構文は次のとおりです int iswlower (wint_t c) パラメータ − cは、チェックするワイド文字、wint_tにキャストする文字、またはWEOF(wint_tは整数型)です。 戻り値 − islower()関数は、文