バイナリ文字列では、隣接するビットのペアを反転すると、文字列から 1 つの 0 を簡単に削除できます。ただし、バイナリ文字列からすべての 0 を削除する必要がある場合は、隣接しないビット ペアも反転する必要がある場合があります。この記事では、バイナリ文字列からすべての 0 を削除するために必要な、隣接しないペアの反転の最小数を決定する方法について説明します。
###アルゴリズム###次に、このアルゴリズムを C で実装してみましょう。
###例### リーリー ###出力### リーリーコードの説明
最後に、文字列からすべての 0 を削除するために必要な、隣接しないペアの反転の数を出力します。
リーリーテストケースの例
バイナリ文字列「100101000」について考えてみましょう。この文字列からすべての 0 を削除するために必要な、隣接しないペアの反転の最小数は、上記のアルゴリズムを使用して計算できます。
まず、位置 2 で 0 に遭遇します。 (1,3) ペアを反転して、文字列「110101000」を取得します。次に、位置 5 で次の 0 に遭遇します。 (1,7) ペアを反転して、文字列「111101000」を取得します。次に、位置 8 で次の 0 に遭遇します。 (1,9) ペアを反転して、文字列「111111000」を取得します。これで、文字列からすべての 0 が削除されました。
この記事では、バイナリ文字列からすべての 0 を削除するために必要な、隣接しないペアの反転の最小数を決定する方法について説明しました。シンプルな貪欲アルゴリズムを使用してこの問題を解決し、C コードで実装します。また、アルゴリズムがどのように機能するかを説明するサンプル テスト ケースも提供します。
以上がバイナリ文字列内のすべてのゼロを削除するために必要な、隣接しないペアの反転の最小数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。