C ++

 Computer >> コンピューター >  >> プログラミング >> C ++
  1. C++で遺伝子の全突然変異グループを見つけるプログラム

    各要素の長さが同じで、各要素に文字「A」、「C」、「G」、「T」が含まれている遺伝子と呼ばれる文字列のリストがあるとします。今、いくつかのルールがあります- 2つの文字列s1とs2が1つの文字を除いて同じ文字列である場合、s1とs2は同じミューテーショングループに属します。 2つの文字列s1とs2がグループにあり、s2とs3がグループにある場合、s1とs3は同じグループにあります。 生成できる突然変異グループの総数を見つける必要があります。 したがって、入力がgenes =[ACGT、 ACGC、 ACTT、 TTTT、 TGTT]のようである場合、2つの変異グループがある

  2. C++でツリーの高さがバランスされているかどうかを確認するプログラム

    二分木があるとしましょう。高さがバランスしているかどうかを確認する必要があります。高さのバランスが取れたツリーの場合、ツリー内のすべてのノードについて、左側のサブツリーの高さと右側のサブツリーの高さの絶対差は0または1であることがわかっています。 したがって、入力が次のような場合 その場合、出力はTrueになります これを解決するには、次の手順に従います- 関数dfs()を定義します。これはノードを取ります ノードがnullの場合、- 0を返す l:=1 + dfs(ノードの左側) r:=1 + dfs(ノードの右側) 1、次に- re

  3. C++の数値の2進形式で1の最長連続実行を検索するプログラム

    数値がnであるとすると、バイナリ表現で1の最長連続実行の長さを見つける必要があります。 したがって、入力がn =312の場合、312はバイナリで100111000であり、3つの連続した1があるため、出力は3になります。 これを解決するには、次の手順に従います- ret:=0、len:=0 初期化i:=0の場合、i <32の場合、更新(iを1増やします)、次のようにします。 n / 2が奇数の場合、 (lenを1増やします) それ以外の場合 len:=0 ret:=retとlenの最大値 retを返す 理解を深めるために、

  4. C++で二分木の左側面図を見つけるプログラム

    二分木があると仮定します。左側からツリーを見ると、そのいくつかの要素を見ることができます。それらの要素を表示する必要があります。したがって、ツリーが次のような場合- 出力は[1,2,5]になります これを解決するには、次の手順に従います- 配列retを定義する 関数dfs()を定義します。これはノードを取得し、cは1で初期化します ノードがnullの場合、- 戻る lvlの場合、- lvl:=c ノードの値をretに挿入します dfs(ノードの左側、c + 1) dfs(ノードの右側、c + 1) メインの方法から

  5. C++で二分木のレベル順トラバーサルを実行するプログラム

    二分木があるとします。レベル順トラバーサル方式を使用して、このツリーをトラバースする必要があります。したがって、ツリーが次のような場合 トラバーサルシーケンスは次のようになります:[1,2,3,5,4] これを解決するには、次の手順に従います- ノードを格納するキューキューを定義する ルートをキューに挿入します。 queが空でない間、実行します item:=キューの前の位置にあるアイテム アイテムの値を印刷する アイテムの左側がnullでない場合は、アイテムの左側をqueに挿入します アイテムの権利がnullでない場合は、アイテムの権利をq

  6. C++で最小の合計を持つツリーレベルを見つけるプログラム

    二分木があり、そのルートのレベルが1、子のレベルが2などであると仮定します。レベルXのノードのすべての値の合計が最小になるように、最小のレベルXを見つける必要があります。したがって、ツリーが次のような場合- 合計が4– 10 =-6であるため、出力は2になります。これは最小です。 これを解決するには、次の手順に従います- level:=1、sum:=rの値、ansLevel:=level、ansSum:=sum キューqを定義し、指定されたノードrをqに挿入します qが空ではない間 容量:=qのサイズ レベルを1増やし、合計:=0 容量が0では

  7. リストをC++でk個の増加する要素のサブリストに分割できるかどうかをチェックするプログラム

    numsと呼ばれる数値のリストと別の数値kがあるとすると、各リストにk個の値が含まれ、値が連続して増加するリストにリストを分割できるかどうかを確認する必要があります。 したがって、入力がnums =[4、3、2、4、5、6]、k =3のような場合、リストを[2、3、4]と[に分割できるため、出力はTrueになります。 4、5、6] これを解決するには、次の手順に従います- 1つのマップを定義する キーごとにmで m[it]を1増やします ok:=true (mのサイズは0ではなく、okはtrueです)、実行- ok:=false キーと値

  8. C++で最長のバイトニックサブシーケンスの長さを見つけるプログラム

    番号のリストがあるとします。最長のビットニックサブシーケンスの長さを見つける必要があります。 Asweノットシーケンスは、厳密に増加してから厳密に減少する場合、バイトニックであると言われます。厳密に増加するシーケンスはバイトニックです。または、厳密に減少するシーケンスもバイトニックです。 したがって、入力がnums =[0、8、4、12、2、10、6、14、1、9、5、13、3、11、7、15]、シーケンス16のサイズのような場合、出力は7になります。 これを解決するには、次の手順に従います- 増加するSubSeq:=指定された配列サイズの新しい配列。1で埋める 初期化i:=1

  9. C++で最長共通部分列の長さを見つけるプログラム

    2つの文字列text1とtext2があるとすると、それらの最も長い共通のサブシーケンスの長さを見つける必要があります。文字列のサブシーケンスは、元の文字列から生成された新しい文字列であり、残りの文字の相対的な順序を変更せずに一部の文字が削除されています。 (たとえば、「abe」は「abcde」のサブシーケンスですが、「adc」はそうではありません)。 2つの文字列の共通のサブシーケンスは、両方の文字列に共通のサブシーケンスです。したがって、共通のサブシーケンスがない場合は0を返します。入力が「abcde」や「ace」の場合、結果は3になります。 これを解決するには、次の手順に従います-

  10. C++で最長の一般的な部分文字列の長さを見つけるプログラム

    2つの小文字の文字列XとYがあるとすると、それらの最長の共通部分文字列の長さを見つける必要があります。 したがって、入力がX =helloworld、Y =worldbookの場合、 worldは最長の共通部分文字列であり、その長さは5であるため、出力は5になります。 これを解決するには、次の手順に従います- サイズが最も長い配列を定義します:m + 1 x n+1。 len:=0 初期化i:=0の場合、i <=mの場合、更新(iを1増やします)、実行- 初期化j:=0の場合、j <=nの場合、更新(jを1増やします)、実行- iが0と同じか、jが0と同じ場

  11. C++で2つの二分木をマージするプログラム

    2つの二分木があり、一方をもう一方を覆うように配置すると、2つのツリーの一部のノードがオーバーラップし、他のノードがオーバーラップするとします。それらを新しいバイナリツリーにマージする必要があります。マージルールは、2つのノードがオーバーラップしている場合、ノード値を合計して、マージされたノードの新しい値として計算するようなものです。それ以外の場合は、空でないノードが新しいツリーのノードとして使用されます。 したがって、木が- その場合、出力は-になります これを解決するには、次の手順に従います- メソッドはsolve()です。これは、2つのツリーノードn1とn2を取

  12. 完全な平方の数を数えるプログラムが追加され、C++で数を形成します

    正の数nがあるとすると、合計がnと同じである完全な平方数の最小数を見つける必要があります。したがって、数値が10の場合、数値は10 =9 + 1であるため、出力は2になります。 これを解決するには、次の手順に従います- 動的計画法用に長さn+1のテーブルを1つ作成し、それを無限大で埋めます dp [0]:=0 for i:=1、when i * i <=n x =i * i for j:=x to n dp [j]:=最小のdp[j]および1+ dp [j – x] return dp [n] 理解を深めるために、次の実装を見てみましょう- 例 #inc

  13. C++で後置記法を評価するプログラム

    接尾辞式があり、値を評価する必要があるとします。後置式は、逆ポーランド記法とも呼ばれます。ここでは、スタックデータ構造を使用して接尾辞式を解決する必要があります。 したがって、式が「21 + 3 *」の場合、答えは9になります。 手順を見てみましょう- 後置式の文字chごとに、を実行します。 chが演算子$\odot $の場合、 a:=スタックから最初の要素をポップします b:=スタックから2番目の要素をポップします res:=b $ \ odot $ a 解像度をスタックにプッシュします それ以外の場合、chがオペランドの場合、 スタックにchを追加 スタックトップ

  14. C++で重複を削除するために削除する間隔の最小数を見つけるプログラム

    一連の間隔があるとします。残りの間隔が重ならないようにするために削除する必要がある間隔の最小数を見つける必要があります。したがって、間隔が[[8,10]、[3,5]、[6,9]]の場合、他のすべてが重複しないように[6,9]を削除する必要があるため、出力は1になります。 。 これを解決するには、次の手順に従います- n:=配列のサイズ nが0の場合、0を返します count:=1 間隔の終了時間に基づいて配列を並べ替えます end:=最初の間隔の終了日 1からn–1の範囲のiの場合 =の開始時刻が終了した場合、 end:=到着の終了時刻[i] カウントを1つ増やします

  15. サブリストを削除して、C++でkの上下に同じ数の要素を取得するプログラム

    numsと呼ばれる番号のリストと別の番号kがあるとすると、リストからサブリストを最大1回削除できます。結果として得られる最長のリストの長さを、厳密にkより小さく厳密にkより大きい数の量が同じになるように見つける必要があります。 したがって、入力がnums =[6、10、8、9、3、5]、k =6の場合、サブリスト[9]を削除した場合と同様に、出力は5になり、[6、 10、8、3、5]であり、6よりも小さい2つの数値[3、5]と6よりも大きい2つの数値[10、8]があります。 これを解決するには、次の手順に従います- nums + 1と同じサイズの配列vを定義し、0で埋めます cnt:

  16. C++で異なる長さのロッドを切断することによって最大の利益を見つけるためのプログラム

    長さnのロッドがあるとします。サイズごとに異なるサイズと価格を含むリストもあります。ロッドを切って市場で売って最高価格を見つけなければなりません。さまざまな位置でカットし、ロッドをカットした後の価格を比較することで、最良の価格を得るには。 したがって、入力がprices =[1、5、8、9、10、17、17、20]、n =8のようである場合、ロッドを長さ2および6に切断することにより、出力は22になります。利益は5+17=22です。 これを解決するには、次の手順に従います- サイズの配列利益を定義します:n+1。 利益[0]:=0 初期化i:=1の場合、i <=nの場合

  17. リンクリストをC++でk桁回転させるプログラム

    になります。 NULL] 手順を見てみましょう- リストが空の場合は、nullを返します len:=1 tail:=headという1つのノードを作成します テールの次はnullではありません lenを1増やします 尻尾:=尻尾の次 尻尾の次:=頭 k:=k mod len newHead:=null for i:=0 to len − k 尻尾:=尻尾の次 newHead:=テールの次 しっぽの次:=null newHeadを返す 理解を深めるために、次の実装を見てみましょう- 例

  18. C++で文字配列として格納されている文の単語を逆にするプログラム

    各要素が単一の文字として格納されている1つの入力文字列文があるとすると、文字列を単語ごとに逆にする必要があります。 したがって、入力が[t、 h、 e、 、 m、 a、 n、 、 i、 s、 、のような場合n 、 l 、 c 、 e ]の場合、出力は[ n 、 l 、 c 、 e 、 、 i 、 s 、になります。 、 m 、 a 、 n 、 、 t 、 h 、 e ] これを解決するには、次の手順に従います- 配列を反転します j:=0 n:=sのサイズ 初期化i:=0の場合、i

  19. 2つの文字列を乗算し、結果をC++の文字列として返すようにプログラムします。

    文字列として2つの数値があるとします。それらを乗算し、結果を文字列で返す必要があります。したがって、数値が「28」と「25」の場合、結果は「700」になります これを解決するには、次の手順に従います- 2つの引数xとyを取ると、xがyを分割することを示します x <−Infinityおよびy =1の場合、無限大を返します a:=| x |、b:=| y |およびans:=0 =0 p:=0 =0 p:=p + 1 a:=a −(左シフトb、p回) ans:=ans+左シフト1p回 0も真の場合は、ansを返します。

  20. 文字列がC++で他の文字列のサブシーケンスであるかどうかをチェックするプログラム

    2つの文字列SとTがあるとします。SがTのサブシーケンスであるかどうかを確認する必要があります。 したがって、入力がS =abc、T =adbrcyxdのような場合、出力はTrueになります これを解決するには、次の手順に従います- sがtと同じ場合、- trueを返す n:=sのサイズ、m:=tのサイズ j:=0 初期化i:=0の場合、i

Total 5992 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:219/300  20-コンピューター/Page Goto:1 213 214 215 216 217 218 219 220 221 222 223 224 225