C ++

 Computer >> コンピューター >  >> プログラミング >> C ++
  1. C++でシフトされた文字列をグループ化する

    「xyz」のシーケンスを形成するこの操作を続行できます。小文字のアルファベットのみを含む空でない文字列のリストがある場合は、同じシフトシーケンスに属するすべての文字列をグループ化する必要があります。 したがって、入力が[abc、 bcd、 acef、 xyz、 az、 ba、 a、 z]の場合、出力は[[abc 、 bcd 、 xyz ]、[ az 、 ba ]、[ acef ]、[ a 、 z ]] これを解決するには、次の手順に従います- 1つのマップを定義するm 1つの2D配列retを定義する 初期化i:=0の場合、i <文字列のサイズの場合、更新(iを1増やしま

  2. C++でUnivalueサブツリーをカウントする

    二分木があるとしましょう。単一値のサブツリーの数を数える必要があります。ここで、単一値サブツリーは、サブツリーのすべてのノードが同じ値を持っていることを示しています。 したがって、入力がroot =[5,1,5,5,5、null、5]、のような場合 その場合、出力は4になります これを解決するには、次の手順に従います- 関数solve()を定義します。これはノードを取ります ノードが空の場合、- trueを返す 左:=solve(ノードの左側) 右:=ソルブ(ノードの右) 左が偽または右が偽の場合、- falseを返す ノード

  3. C++で2Dベクトルを平坦化する

    2Dベクトルがあるとすると、その2Dベクトルをフラット化するイテレーターを設計および実装する必要があります。次のようにさまざまな方法があります- next()-これにより、現在の要素の次の要素が返されます hasNext()-これは、次の要素が存在するかどうかをチェックします したがって、入力が[[1,2]、[3]、[4]]のような場合、関数を次のように呼び出すと- iterator.next(); iterator.next(); iterator.next(); iterator.hasNext(); iterator.hasNext

  4. C++の会議室II

    会議の時間間隔の配列があるとします。開始時間と終了時間の2つの時間[[s1、e1]、[s2、e2]、...]があり、各ペアはルール(si

  5. C++での因子の組み合わせ

    番号があるとします。数字はその要因の積と見なすことができます。したがって、8 =2 x 2 x 2; =2 x 4.整数nを取り、その因子のすべての可能な組み合わせを返す1つの関数を作成する必要があります。 したがって、入力が12のような場合、出力は[[2、6]、[2、2、3]、[3、4]]になります。 これを解決するには、次の手順に従います- 関数solve()を定義します。これには、n、target、start、が必要です。 retと呼ばれるリストの1つのリストを定義します nが1と同じ場合、- retを返す nがターゲットと等しくない場合、-

  6. C++のバイナリ検索ツリーでプレオーダーシーケンスを確認する

    数列があるとします。それが二分探索木の正しいプレオーダートラバーサルシーケンスであるかどうかを確認する必要があります。シーケンス内の各番号は一意であると想定できます。次の二分探索木を考えてみましょう- したがって、入力が[5,2,1,3,6]のような場合、出力はtrueになります これを解決するには、次の手順に従います- itr:=-1 低:=-infinity 初期化i:=0の場合、i <プレオーダーのサイズの場合、更新(iを1増やします)、実行- x:=preorder [i] x

  7. 3C++では小さい

    numsと呼ばれるn個の整数の配列があり、ターゲットもあるとすると、ここでインデックストリプレット(i、j、k)の数を見つける必要があります。ここでi、j、kはすべて0からn-1の範囲にあります。条件nums[i]+ nums [j] + nums[k]<ターゲットを満たします。 したがって、入力がnums =[-2,0,1,3]で、target =2の場合、合計が2未満のトリプレットが2つあるため、出力は2になります。[-2,0、 1]および[-2,0,3]。 これを解決するには、次の手順に従います- ret:=0 配列を並べ替える n:=aのサイズ 初期化i:

  8. C++で有効なツリーをグラフ化する

    0からn-1までのラベルが付けられたn個のノードと、無向エッジのリスト[u、v]があるとします。これらのエッジが有効なツリーを構成しているかどうかをチェックする関数を定義する必要があります。 したがって、入力がn =5で、edges =[[0,1]、[0,2]、[0,3]、[1,4]]の場合、出力はtrueになります これを解決するには、次の手順に従います- 関数dfs()を定義します。これにより、ノード、パー、グラフ、およびvisitedと呼ばれる別の配列が取得されます visited [node]が1と同じ場合、- trueを返す visited [node

  9. C++でのパリンドローム順列II

    文字列sがあるとすると、そのすべての回文順列を見つける必要があり、繰り返しはありません。回文順列がない場合は、空の文字列を返すだけです。 したがって、入力が「aabb」のような場合、出力は[abba、 baab]になります。 これを解決するには、次の手順に従います- 配列retを定義する 関数solve()を定義します。これには、s、sz、順序付けされていない1つのマップmが必要であり、idxは0で初期化します。 szが0と同じ場合、- retの最後にsを挿入します 戻る evenFound:=false 訪問した1セットを定義する m

  10. C++での文字列のエンコードとデコード

    文字列のリストがあるとします。文字列のリストを文字列にエンコードできるアルゴリズムを設計する必要があります。また、文字列の元のリストにデコードして戻すデコーダーを1つ作成する必要があります。これらのマシンにエンコーダーとデコーダーがインストールされていて、次の2つの異なる機能があるとします- マシン1(送信者)には機能があります string encode(vector<string< strs) {    //code to read strings and return encoded_string; } マシン2(レシーバー)には機能があります vecto

  11. C++で有名人を探す

    n人(0からn-1のラベルが付いている)がいて、その中に1人の有名人がいるとします。他のすべてのn-1人がxを知っているが、xはそれらのいずれも知らない場合、人xは有名人であると言えます。ここでは、有名人が誰であるかを見つけるか、有名人がいないことを確認する必要があります。 人物「A」に「こんにちは、A。Bを知っていますか?」という質問を1つだけ許可されています。 AがBを知っているかどうかの情報を取得します。有名人を見つけるには、最小限の質問をする必要があります。グラフと呼ばれる入力としてリストのリストがあります。i番目の人がj番目の人を知っている場合はgraph[i、j] =1、それ以外

  12. C++でのWiggleソート

    numsというソートされていない配列があるとすると、nums [0] =nums [2] <=nums[3]....などのようにインプレースで並べ替える必要があります。 したがって、入力がnums =[3,5,2,1,6,4]のようである場合、出力は[3,5,1,6,2,4]になり、他の答えがある可能性があります。 これを解決するには、次の手順に従います- n:=numsのサイズ 初期化i:=0の場合、i

  13. C++のジグザグイテレータ

    2つの1D配列があるとすると、それらの要素を交互に返すイテレータを実装する必要があります。 2つの方法があります- next()-次の要素を取得する hasNext()-次の要素が存在するかどうかを確認します。 したがって、入力がv1 =[1,2] v2 =[3,4,5,6]の場合、出力は[1,3,2,4,5,6]、になります。 これを解決するには、次の手順に従います- ペアの1つのキューqを定義します イニシャライザから、2つのアレイv1とv2を作成します。 サイズがv1の場合、- {0、0}をqに挿入します サイズがv2の場合、-

  14. C++のBSTのInorderSuccessor

    二分探索木とその中にノードがあるとすると、BSTでそのノードの順序どおりの後続を検索する必要があります。ノードpの後継は、p.valより大きい最小のキーを持つノードであることがわかっています。 したがって、入力がroot =[2,1,3]、p =1、のような場合 その場合、出力は2になります これを解決するには、次の手順に従います- 再帰的メソッドをinorderSuccessor()で定義します。これにより、ルートとpが取得されます。 ルートがnullの場合、- nullを返す ルートのval<=pのvalの場合、- inorderSuccess

  15. C++の壁と門

    1つのmxn 2Dグリッドがあり、それがこれら3つの可能な値で初期化されているとします。 -壁または障害物の場合は-1。 ゲートの場合は0。 INFこれは無限大は空の部屋を意味します。 ここで、2 ^ 31-1 =2147483647はINFです。これは、ゲートまでの距離が2147483647未満であると想定できるためです。空の各部屋に、最も近いゲートまでの距離を入力します。ゲートに到達できない場合は、INFで埋める必要があります。 したがって、入力が次のような場合 INF -1 0 INF INF INF INF -1

  16. C++でゲームIIを反転する

    フリップゲームをプレイしている2人のプレーヤーがいるとします。ここに、次の2つの文字のみを含む文字列があります。+と-、player1とplayer2は、2つの連続する「++」を「-」に交互に反転します。 1人のプレーヤーが移動できなくなったときにゲームが終了するため、もう1人のプレーヤーが勝者になります。スターティングプレイヤーが勝利を保証できるかどうかをチェックする関数を定義する必要があります。 したがって、入力がs =++++の場合、出力はtrueになります。これは、開始プレーヤーが中央の++を反転して+-+になることで勝利を保証できるためです。 これを解決するには、次の手順に従いま

  17. C++での二分木最長連続シーケンス

    二分木があるとしましょう。連続する最長のシーケンスパスの長さを見つけることができるかどうかを確認する必要があります。パスが、親子接続に沿ったツリー内の開始ノードから任意のノードまでのノードのシーケンスを参照している場合。最長の連続パスは、親から子をたどる必要がありますが、逆にする必要はありません。 したがって、入力が次のような場合、 最長の連続シーケンスパスは3-4-5であるため、出力は3になります。したがって、3を返します。 これを解決するには、次の手順に従います- 関数solveUtil()を定義します。これにより、ノード、prev、lenが1で初期化されます。 ノ

  18. C++でのスパース行列の乗算

    2つの行列AとBがあるとすると、ABの結果を見つける必要があります。 Aの列番号はBの行番号と同じであると想定できます。 したがって、入力が[[1,0,0]、[-1,0,3]] [[7,0,0]、[0,0,0]、[0,0,1]]のような場合、 1 0 0 -1 0 3 7 0 0 0 0 0 0 0 1 その場合、出力は[[7,0,0]、[-7,0,3]]になります。 7 0 0 -7 0 3 これを解決するには、次の手順に従います- r1:

  19. C++での二分木垂直順序走査

    二分木があるとすると、そのノードの値の垂直方向の走査を見つける必要があります。 2つのノードが同じ行と列にある場合、順序は左から右になります。 したがって、入力が次のような場合、 その場合、出力は[[9]、[3,15]、[20]、[7]]になります。 これを解決するには、次の手順に従います- 1つのマップを定義するm 関数solve()を定義します。これはノードを取り、xは0で初期化します ノードがnullの場合、- 戻る 解決(ノードの左側、x-1) 解決(ノードの右側、x + 1) m [x]の最後にノードの値を挿入します メ

  20. C++での一般化された略語

    単語があるとしましょう。単語の一般化された略語を生成できる関数を定義する必要があります。 したがって、入力が「word」のような場合、出力は[word、 1ord、 w1rd、 wo1d、 wor1、 2rd、 w2d、 wo2、になります。 1o1d 、 1or1 、 w1r1 、 1o2 、 2r1 、 3d 、 w3 、 4 ] これを解決するには、次の手順に従います- 配列retを定義する 関数solve()を定義します。これには、s、idx、が必要です。 =sのサイズの場合、- retの最後にsを挿入します 戻る y:=インデックス0から

Total 5992 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:227/300  20-コンピューター/Page Goto:1 221 222 223 224 225 226 227 228 229 230 231 232 233