目次
例例
方法 2
文字列の格納に set を使用するため、空間複雑度 - O(N)。
コレクションを定義し、すべての配列値をコレクションに挿入します。
generateCombinations() 関数を呼び出してバイナリ文字列のすべての組み合わせを生成します
ホームページ バックエンド開発 C++ 指定されたサイズのバイナリ文字列配列に存在しない順列を検索します

指定されたサイズのバイナリ文字列配列に存在しない順列を検索します

Aug 26, 2023 pm 01:57 PM
配置 バイナリ文字列 存在しない

指定されたサイズのバイナリ文字列配列に存在しない順列を検索します

この問題では、配列から長さ N の欠落しているバイナリ文字列をすべて見つける必要があります。この問題は、長さ N のバイナリ文字列のすべての順列を見つけて、配列内にどの順列が存在しないかをチェックすることで解決できます。ここでは、この問題を解決するための反復的および再帰的方法を見ていきます。

問題ステートメント - 異なる長さのバイナリ文字列を含む長さ N の配列 arr[] が与えられました。配列から長さ N の欠落しているバイナリ文字列をすべて見つける必要があります。

例例

入力 – arr = {"111", "001", "100", "110"}, N = 3

出力 – [000, 010, 011, 101]

説明 – 2 の 3 乗は 8 に等しいため、長さ 3 のバイナリ文字列が 8 つあります。したがって、不足している長さ 3 の 4 つのバイナリ文字列が出力されます。

入力 – str = {‘00’, ‘10’, ‘11’}, N = 2

出力 –['01']

説明 – 「01」が配列にないため、出力に表示されます。

方法 1

ここでは、反復法を使用して、長さ N の可能なバイナリ文字列をすべて見つけます。その後、文字列が配列内に存在するかどうかを確認します。存在しない場合は、文字列を出力します。

###アルゴリズム###

    コレクションを定義し、insert() メソッドを使用して、配列内のすべての文字列をコレクションに追加します。
  • total 変数を 2N で初期化します。2N は長さ N
  • の文字列の総数です。

  • 変数 'c​​nt' を定義し、それをゼロに初期化して、欠落している組み合わせの総数を保存します。
  • ループを使用して「合計」回数反復し、長さ N のバイナリ文字列をすべて検索します。
  • ループ内で、「num」文字列変数を空の文字列で初期化します。
  • ネストされたループを合計 N 回繰り返し使用し、最後の繰り返しから開始して長さ N の文字列を作成します。
  • find() メソッドを使用して、コレクションに現在の文字列が含まれているかどうかを確認します。その場合は、「cnt」の値を 1 増やします。
  • 文字列がマップにない場合は、出力に表示されるように印刷します
  • 「cnt」の値が合計数と等しい場合は、長さ N の文字列がすべて配列内に存在することを意味し、「-1」が出力されます。
  • ###例### リーリー ###出力### リーリー
  • 時間計算量 - O(N*2N)。O(N) は文字列が配列内に存在するかどうかを確認するために使用され、O(2N) はすべての可能な順列を見つけるために使用されます。

文字列の格納に set を使用するため、空間複雑度 - O(N)。

方法 2

このアプローチでは、長さ N のすべての可能なバイナリ文字列を見つけるための再帰的アプローチの使用を示します。

###アルゴリズム###

コレクションを定義し、すべての配列値をコレクションに挿入します。

generateCombinations() 関数を呼び出してバイナリ文字列のすべての組み合わせを生成します

  • generateCombinations() 関数で基本ケースを定義します。インデックスが N に等しい場合、currentCombination がリストに追加されます。

  • 現在の組み合わせに「0」または「1」を追加した後、generateCombinations() 関数を再帰的に呼び出します。
  • すべての組み合わせを取得した後、配列内にどの組み合わせが存在し、どの組み合わせが存在しないかを確認します。また、不足している組み合わせを出力して出力に表示します。
    • ###例### リーリー ###出力### リーリー

      時間計算量 - O(N*2N)
    すべての組み合わせを配列に格納するため、空間複雑度 - O(2N)。
  • どちらの方法も同じロジックを使用して問題を解決します。最初の方法では、反復手法を使用して長さ N のバイナリ文字列のすべての組み合わせを検索します。これは、2 番目の方法で使用される再帰的手法よりも高速です。また、2 番目の方法は最初の方法よりも多くのスペースを消費します。

以上が指定されたサイズのバイナリ文字列配列に存在しない順列を検索しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

世界のトップ10の仮想通貨取引プラットフォームのトップ10のランキングは何ですか? 世界のトップ10の仮想通貨取引プラットフォームのトップ10のランキングは何ですか? Feb 20, 2025 pm 02:15 PM

暗号通貨の人気により、仮想通貨取引プラットフォームが登場しています。世界の上位10の仮想通貨取引プラットフォームは、トランザクションの量と市場シェアに従って次のようにランク付けされています:Binance、Coinbase、FTX、Kucoin、Crypto.com、Kraken、Huobi、Gate.io、Bitfinex、Gemini。これらのプラットフォームは、幅広い暗号通貨の選択から、さまざまなレベルのトレーダーに適したデリバティブ取引に至るまで、幅広いサービスを提供しています。

ブートストラップ画像の中央でFlexBoxを使用する必要がありますか? ブートストラップ画像の中央でFlexBoxを使用する必要がありますか? Apr 07, 2025 am 09:06 AM

ブートストラップの写真を集中させる方法はたくさんあり、FlexBoxを使用する必要はありません。水平にのみ中心にする必要がある場合、テキスト中心のクラスで十分です。垂直または複数の要素を中央に配置する必要がある場合、FlexBoxまたはグリッドがより適しています。 FlexBoxは互換性が低く、複雑さを高める可能性がありますが、グリッドはより強力で、学習コストが高くなります。メソッドを選択するときは、長所と短所を比較検討し、ニーズと好みに応じて最も適切な方法を選択する必要があります。

ゴマのオープンエクスチェンジを中国語に調整する方法 ゴマのオープンエクスチェンジを中国語に調整する方法 Mar 04, 2025 pm 11:51 PM

ゴマのオープンエクスチェンジを中国語に調整する方法は?このチュートリアルでは、コンピューターとAndroidの携帯電話の詳細な手順、予備的な準備から運用プロセスまで、そして一般的な問題を解決するために、セサミのオープン交換インターフェイスを中国に簡単に切り替え、取引プラットフォームをすばやく開始するのに役立ちます。

トップ10の暗号通貨取引プラットフォーム、トップ10の推奨される通貨取引プラットフォームアプリ トップ10の暗号通貨取引プラットフォーム、トップ10の推奨される通貨取引プラットフォームアプリ Mar 17, 2025 pm 06:03 PM

上位10の暗号通貨取引プラットフォームには、1。Okx、2。Binance、3。Gate.io、4。Kraken、5。Huobi、6。Coinbase、7。Kucoin、8。Crypto.com、9。Bitfinex、10。Gemini。プラットフォームを選択する際には、セキュリティ、流動性、処理料、通貨選択、ユーザーインターフェイス、カスタマーサポートを考慮する必要があります。

トップ10仮想通貨取引プラットフォーム2025暗号通貨取引アプリランキングトップ10 トップ10仮想通貨取引プラットフォーム2025暗号通貨取引アプリランキングトップ10 Mar 17, 2025 pm 05:54 PM

トップ10仮想通貨取引プラットフォーム2025:1。OKX、2。BINANCE、3。GATE.IO、4。Kraken、5。Huobi、6。Coinbase、7。Kucoin、8。Crypto.com、9。Bitfinex、10。Gemini。プラットフォームを選択する際には、セキュリティ、流動性、処理料、通貨選択、ユーザーインターフェイス、カスタマーサポートを考慮する必要があります。

c-subscript 3 subscript 5 c-subscript 3 subscript 5アルゴリズムチュートリアルを計算する方法 c-subscript 3 subscript 5 c-subscript 3 subscript 5アルゴリズムチュートリアルを計算する方法 Apr 03, 2025 pm 10:33 PM

C35の計算は、本質的に組み合わせ数学であり、5つの要素のうち3つから選択された組み合わせの数を表します。計算式はC53 = 5です! /(3! * 2!)。これは、ループで直接計算して効率を向上させ、オーバーフローを避けることができます。さらに、組み合わせの性質を理解し、効率的な計算方法をマスターすることは、確率統計、暗号化、アルゴリズム設計などの分野で多くの問題を解決するために重要です。

WebアノテーションにY軸位置の適応レイアウトを実装する方法は? WebアノテーションにY軸位置の適応レイアウトを実装する方法は? Apr 04, 2025 pm 11:30 PM

Y軸位置Webアノテーション機能の適応アルゴリズムこの記事では、単語文書と同様の注釈関数、特に注釈間の間隔を扱う方法を実装する方法を探ります...

安全で信頼できるデジタル通貨プラットフォームは何ですか? 安全で信頼できるデジタル通貨プラットフォームは何ですか? Mar 17, 2025 pm 05:42 PM

安全で信頼できるデジタル通貨プラットフォーム:1。OKX、2。Binance、3。Gate.io、4。Kraken、5。Huobi、6。Coinbase、7。Kucoin、8。Crypto.com、9。Bitfinex、10。Gemini。プラットフォームを選択する際には、セキュリティ、流動性、処理料、通貨選択、ユーザーインターフェイス、カスタマーサポートを考慮する必要があります。

See all articles