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

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

王林
王林転載
2023-09-08 11:29:021230ブラウズ

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

ここでは、連続するゼロが含まれないようにバイナリ文字列を操作する必要があります。連続したゼロが見つかった場合は、任意のゼロを 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 までご連絡ください。

関連記事

続きを見る