この問題では、指定されたバイナリ文字列からすべてのゼロを削除する必要があります。同時に、連続するゼロのペアを一度に削除し、削除されたゼロのペアの合計数をカウントする必要があります。
指定された文字列内の連続するゼロのペアの数を数えることで、問題を解決できます。このチュートリアルでは、問題を解決するための 2 つの異なる解決策を学習します。
問題ステートメント -長さ N の循環バイナリ文字列 str が与えられます。文字列からすべてのゼロを削除するために必要な、連続するゼロの最小数を見つける必要があります。
すべてのゼロを一度に削除できます。
リーリー リーリー ###説明###アプローチ 1
ステップ 1
- 「cnt」変数をゼロに初期化します。
- 指定された文字列内の数値 1 を追跡するために、「isOne」変数を false 値に初期化します。
- ループを使用して文字列を反復処理します。ループ内で、現在の文字が「0」の場合、「cnt」の値を 1 ずつ増やします。
-while ループを使用して、「0」である次の文字を見つけて「I」の値を 1 ずつ増やすまで繰り返します。
- 現在の文字が「1」の場合は、「isOne」変数の値を true に変更します。これは、文字列に少なくとも 1 つの「1」が含まれていることを示します。
-ループの反復が完了すると、「isOne」の値が false の場合、文字列にゼロのみが含まれていることを意味し、そのような場合は 1 を返します。
ステップ 8
-「cnt」の値を返します。Example の中国語訳は次のとおりです:
Example方法 2
この方法では、隣接する要素の差を数えることによって、すべてのゼロを削除するために必要なゼロ削除部分文字列の最小数を計算します。
Example
リーリー ###出力### リーリー ###結論は### 与えられた問題に対する 2 つの異なる解決策を見てきました。最初の方法では、連続するゼロのペアの合計数を数えます。2 番目の方法では、一致しない隣接する文字の合計数を数えます。
以上が以下を中国語に翻訳します。ループされたバイナリ文字列から 0 の出現をすべて削除するには、0 部分文字列の削除を最小限に抑えます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。