ホームページ > バックエンド開発 > C++ > 文字列内に連続するゼロのペアが存在しないように、フリップの数を最小限に抑えます。

文字列内に連続するゼロのペアが存在しないように、フリップの数を最小限に抑えます。

王林
リリース: 2023-09-08 11:29:02
転載
1287 人が閲覧しました

文字列内に連続するゼロのペアが存在しないように、フリップの数を最小限に抑えます。

ここでは、連続するゼロが含まれないようにバイナリ文字列を操作する必要があります。連続したゼロが見つかった場合は、任意のゼロを 1 に変更する必要があります。文字列から連続するゼロをすべて削除するために実行する必要がある 0 から 1 への変換の合計数をカウントする必要があります。

問題ステートメント -0と1のみを含むバイナリ文字列「str」が与えられています。結果の文字列に連続したゼロが含まれないように、必要なフリップの最小数を見つける必要があります。

例例

リーリー リーリー ###説明###

最後から 2 番目のゼロだけを反転する必要があります。

リーリー リーリー ###説明###

連続するゼロのペアをすべて削除するには、2 番目、5 番目、7 番目、11 番目のゼロを反転する必要があります。

リーリー リーリー ###説明###

文字列には連続するゼロがないため、反転を行う必要はありません。

方法 1

このメソッドでは、文字列を最初から最後まで繰り返し、連続するゼロが含まれている場合は文字を反転します。最後に、指定されたバイナリ文字列から連続するゼロをすべて削除するのに必要な最小反転数を取得できます。

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

ステップ 1

-「cnt」変数をゼロで初期化し、フリップの合計数を保存します。

  • ステップ 2

    -ループを使用してバイナリ文字列を反復処理します。

  • ステップ 3

    -インデックス 'I' およびインデックス 'I 1' の文字が 0 の場合、次の文字を反転し、変数 'c​​nt' の値を 1 増やします。

  • ステップ 4

    - for ループの反復が完了したら、「cnt」の値を返します。

    ###例### リーリー ###出力### リーリー
  • 時間計算量 - O(N)、バイナリ文字列を反復処理する。
  • 空間計算量 - O(1)。合計数を保存するために定数空間を使用します。 ###結論は### 与えられたバイナリ文字列から連続するゼロのペアを削除するために必要なフリップの最小数を計算する方法を学びました。ユーザーは、指定されたバイナリ文字列から連続するペアを削除するために必要なフリップの最小数を計算してみることができます。

以上が文字列内に連続するゼロのペアが存在しないように、フリップの数を最小限に抑えます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート