-
C#を使用して文字ではなく単語ごとに特定の文字列を逆にする方法は?
char配列を入力として受け取り、空のスペースに到達しなくなるまですべての文字に対して単語を反転するメソッドreverseWordsを作成します。最後のステップで、文字列全体を長さ0からn-1の長さに反転します。最初のステップでは、文字列「Thisismybook」が「koobymsisiht」に変換されます。 2番目のステップの終わりに、文字列の単語が「bookmyisThis」に逆になります 時間計算量-O(N) 例 using System; namespace ConsoleApplication{ public class Arrays{
-
C#を使用して組み込み関数なしで最初の一意の文字のインデックスを返す方法は?
長さ256の空の新しい配列を作成し、文字列全体を1文字ずつトラバースして、新しい配列の値をインクリメントします。最後に、配列全体をトラバースして、値が1の最初の文字を返します。 例1 aabccd-→2121→カウント1の最初の文字を返します。つまりbです。 例2 using System; namespace ConsoleApplication{ public class Arrays{ public int ReturnIndexOfFirstUniqueCharachter(string s){ &nb
-
C#を使用して組み込み関数を使用せずに最初の一意の文字を返す方法は?
長さ256の空の新しい配列を作成し、文字列全体を1文字ずつトラバースして、新しい配列の値をインクリメントします。最後に、配列全体をトラバースして、値が1の最初の文字を返します。 例1 aabccd-→2121→カウント1の最初の文字を返します。つまりASCII値で減算してbです。 例2 using System; namespace ConsoleApplication{ public class Arrays{ public char ReturnCharacterOfFirstUniqueCharachter(strin
-
C#を使用して組み込み関数を使用せずに、並べ替えられた配列で欠落している数値を見つけるさまざまな方法は何ですか?
以下に示すように3つの方法があります- 最初の方法で 要素の数を数え、配列内の要素から減算する必要がある式n(n + 1)/2を使用します。 2番目の方法 新しい配列を作成し、配列全体をトラバースして、見つかった数値をfalseにします。 3番目の方法 Xor演算を使用します。不足している番号が表示されます。 例 using System; namespace ConsoleApplication{ public class Arrays{ public int MissingNumber1(
-
C#を使用して組み込み関数を使用せずに、並べ替えられた配列で欠落している数と繰り返されている数を見つける方法は?
不足している番号を見つけるには 新しい配列を作成し、配列全体をトラバースし、数値が見つかった場合は新しい配列で数値をtrueにします。配列全体をトラバースし、最初のfalse要素を欠落している要素として返します。 繰り返し要素を見つけるには 新しい配列の最初の真の要素は、繰り返される要素になります。 例 using System; namespace ConsoleApplication{ public class Arrays{ public void MissingNumberAndRepeatedNumber(int
-
C#を使用して配列の最後に到達するために必要なジャンプの最小数を見つける方法は?
最初の要素から始めて、最初の要素から到達可能なすべての要素を繰り返し呼び出すことができます。最初から最後まで到達するための最小ジャンプ数は、最初から到達可能な要素から最後まで到達するために必要な最小ジャンプ数を使用して計算できます。 配列=={1、3、6、3、2、3、6、8、9、5}; 必要なステップ数は4です 例 using System; namespace ConsoleApplication{ public class Arrays{ public int MinJumps(int[] arr, int l, i
-
C#を使用してサイズn * nの行列を90度回転させる方法は?
行列では、n*n行列に合計n/2の正方形があり、ネストされたループを使用して各正方形を一度に1つずつ処理できます。各正方形の要素は、4つの要素のサイクルで動いています。サイクルごとに反時計回りの方向に関係する要素を交換します 位置(n-1-j、i)の要素は位置(i、j)に移動します 位置(i、j)の要素は位置(j、n-1-i)に移動します 位置(j、n-1-i)の要素は位置(n-1-i、n-1-j)に移動します 位置(n-1-i、n-1-j)の要素は位置(n-1-j、i)に移動します 例 using System; using System.Text; namespace Consol
-
サイズn*nの行列をC#を使用して90度k回回転させる方法は?
行列全体をk回回転させる必要があります。行列では、n*n行列に合計n/2の正方形があり、ネストされたループを使用して各正方形を一度に1つずつ処理できます。各正方形では、要素は4つの要素のサイクルで移動しており、各サイクルで反時計回りの方向に関係する要素を交換します。 位置(n-1-j、i)の要素は位置(i、j)に移動します 位置(i、j)の要素は位置(j、n-1-i)に移動します 位置(j、n-1-i)の要素は位置(n-1-i、n-1-j)に移動します 位置(n-1-i、n-1-j)の要素は位置(n-1-j、i)に移動します 例 using System; using System.T
-
C#を使用してサイズn * nの行列をスパイラル順に印刷するにはどうすればよいですか?
行列をらせん状に回転させるには、すべての内側の行列と外側の行列がカバーされるまで、次の手順を実行する必要があります- ステップ1 −一番上の行の要素を移動する ステップ2 −最後の列の要素を移動する ステップ3 −一番下の行の要素を移動する ステップ4 −最初の列の要素を移動する ステップ5 −内側のマトリックスがある間、内側のリングに対して上記の手順を繰り返します 例 using System; namespace ConsoleApplication{ public class Matrix{ &nbs
-
C#を使用して特定のマトリックス内の島の数を印刷するにはどうすればよいですか?
2Dグリッドマップを線形スキャンします。ノードに「1」が含まれている場合、深さ優先探索をトリガーするのはルートノードです。 DFS中は、訪問したすべてのノードを「0」に設定して、訪問したノードとしてマークする必要があります。 DFSをトリガーするルートノードの数を数えます。あるルートで始まる各DFSがアイランドを識別するため、この数はアイランドの数になります。 例 using System; namespace ConsoleApplication{ public class Matrix{ public int PrintN
-
C#を使用してバックトラックすることにより、任意の数の累乗を見つける方法は?
数xとnをとる力を見つける関数を作成します。ここで、xは2で、nは何回か、力を実行する必要があります。数値が偶数の場合はx*xを実行する必要があり、数値が奇数の場合は結果にx*xを掛けます。 nが0になるまで再帰呼び出しを続けます。 数値が2と8の場合、2 * 2 * 2 * 2 * 2 * 2 * 2 * 2=256と仮定します。 例 using System; namespace ConsoleApplication{ public class BackTracking{ public int FindPower(int
-
C#を使用してバックトラックすることにより、文字列のすべての順列を見つける方法は?
最初の位置にある文字を見つけて、残りの文字を最初の文字と交換します。 ABCの場合と同様に、最初の反復では、AをA、B、およびCとそれぞれ交換することにより、ABC、BAC、およびCBAの3つの文字列が形成されます。 2番目の文字Bを修正するなど、残りの文字についても手順を繰り返します。ここでもう一度スワップして、前の位置に戻ります。 ABCから、Bを再度修正してABCを形成し、前の位置に戻ってBをCと交換しました。これで、ABCとACBを取得しました。 例 using System; namespace ConsoleApplication{ public clas
-
C#を使用してバックトラックすることにより、モバイルでキーパッド値のすべての組み合わせを取得するにはどうすればよいですか?
問題は、より小さく単純な「サブ問題」に分解できます。さらに、さらに単純でより小さなサブ問題に分割できます。すべての桁を1つずつ取得し、任意の桁から到達可能なすべてのn桁をカウントし、マップを使用して、すべての桁から到達可能な桁のマッピングを格納します。桁がn桁になったら、カウントを更新します。 例 using System; using System.Collections.Generic; namespace ConsoleApplication{ public class BackTracking{ private str
-
C#を使用してバックトラックすることにより、指定された配列からターゲットの合計を見つける方法は?
ターゲット合計問題は、要素の合計が指定された数に等しくなるようなサブセットを見つける問題です。バックトラッキングアプローチは、最悪の場合にすべての順列を生成しますが、一般に、サブセット和問題に対する再帰的アプローチよりも優れたパフォーマンスを発揮します。 n個の正の整数と値の合計のサブセットAが与えられ、与えられたセットのサブセットが存在するかどうかを調べます。その要素の合計は、与えられた合計の値に等しくなります 配列[1,2,3]があるとすると、出力は「1,1,1,1」、「1,1,2」、「2,2」、「13」になります。出力「31」から、 ” 211”、” 121”は破棄できます 例 us
-
C#を使用してバックトラックすることにより、特定の配列から個別のサブセットを見つける方法は?
個別のサブセット問題により、指定された配列とは異なる組み合わせが得られます。 ターゲットが2の場合、配列から、番号2に対応するすべての組み合わせを取得します。ターゲットが3の場合、配列から、カウント3に対応するすべての組み合わせを取得します。次の例では、配列は[ 1,2,3]であり、ターゲットは2です。したがって、番号2「1,2」、「2,3」、「1,3」に対応するすべての組み合わせを使用します。 例 using System; using System.Collections.Generic; using System.Text; using System.Linq; namespace C
-
C#を使用してk合計に対応する一意の組み合わせk合計を見つける方法は?
有効なシーケンスを格納する出力リストを作成し、再帰ツリーのパスで見つかった現在のシーケンスを格納する現在のリストを作成します。ターゲットが達成されるまで再帰に入るバックトラック関数。それ以外の場合は、ターゲットが0未満になると、前のフェーズにバックトラックする必要があります。任意の時点で、ターゲットが0になった場合は、候補配列を結果に次のように追加します。候補配列の値は、指定されたターゲットまで合計する必要があります。 そうでない場合は、候補配列に要素を1つずつ追加し、再帰的に前進します。 たとえば、数値が5でkが2であるため、5を形成するサイズ2の数値の組み合わせを形成する必要があります
-
与えられた数C#から合計のユニークな組み合わせを見つける方法は?
有効なシーケンスを格納する出力リストを作成し、再帰ツリーのパスで見つかった現在のシーケンスを格納する現在のリストを作成します。ターゲットが達成されるまで再帰に入るバックトラック関数。それ以外の場合は、ターゲットが0未満になると、前のフェーズにバックトラックする必要があります。任意の時点で、ターゲットが0になった場合は、候補配列を結果に次のように追加します。候補配列の値は、指定されたターゲットまで合計する必要があります。 そうでない場合は、候補配列に要素を1つずつ追加し、再帰的に前進します。 たとえば、数値が5であるため、5を形成する数値を見つける必要があります。出力は「1,4」、「2,3」
-
C#を使用して、指定された数kから開き括弧と閉じ括弧のすべての異なる組み合わせを見つけるにはどうすればよいですか?
開き角かっこがn未満の場合、または閉じ角かっこが開き角かっこよりも小さい場合に、現在の文字列を更新するバックトラック関数を作成します。現在の文字列の長さが2*nになったら、それを組み合わせ結果配列に追加します。配置された{}の数を維持することで簡単に追跡できます。まだ1つ残っている場合は、オープニングブラケットを開始できます。また、開き角かっこの数を超えない場合は、閉じ角かっこを開始できます。 例 using System; using System.Collections.Generic; using System.Text; using System.Linq; namespace Con
-
C#を使用して目的地に到達するために騎士が必要とする最小ステップ数を見つける方法は?
騎士にボードのすべてのセルをカバーさせる必要があり、セルに移動できるのは1回だけです。 騎士の移動を終了するには、2つの方法があります。1つは、騎士が開始した場所からセルから1人の騎士が移動することで、開始した位置に移動してループを形成できることです。これはクローズドと呼ばれます。騎士が他の場所で終了する2番目のツアー、これはオープンツアーと呼ばれます。チェス盤の内側にあり、セルがまだ占有されていない場合、移動は有効です。占有されていないすべてのセルの値を-1に等しくします。 例 using System; using System.Collections.Generic; using Sy
-
C#を使用した再帰によって、ソートされた配列内で配列が回転した回数を見つける方法は?
中間要素(最小要素)のインデックスを検索する次の条件に基づいて、サブアレイにバイナリ検索を適用します- 番号が開始要素とmid1位置の要素の間にある場合。 次に、バイナリ検索を使用して、配列内の番号を1の半ばまで検索します それ以外の場合、数値が中央要素と最後の要素の間にある場合は、バイナリ検索を使用して配列の中央から最後の要素で数値を検索します。 例 using System; using System.Collections.Generic; using System.Text; using System.Linq; namespace ConsoleApplicat