バイナリ文字列内のすべてのゼロを削除するために必要な、隣接しないペアの反転の最小数
バイナリ文字列では、隣接するビットのペアを反転すると、文字列から 1 つの 0 を簡単に削除できます。ただし、バイナリ文字列からすべての 0 を削除する必要がある場合は、隣接しないビット ペアも反転する必要がある場合があります。この記事では、バイナリ文字列からすべての 0 を削除するために必要な、隣接しないペアの反転の最小数を決定する方法について説明します。
###アルゴリズム###この問題を解決するために、単純な貪欲アルゴリズムを使用します。考え方は、常に互いに最も遠く離れており、その間に少なくとも 1 つの 0 が含まれるビットのペアを選択することです。次に、これら 2 つのビットを反転して、文字列から 0 を効果的に削除します。すべての 0 が削除されるまで、このプロセスを繰り返します。
次に、このアルゴリズムを C で実装してみましょう。
###例### リーリー ###出力### リーリーコードの説明
上記のコードは、バイナリ文字列を入力として受け取り、文字列からすべての 0 を削除するために必要な、隣接しないペアの反転の最小数を計算します。次に、コードを詳しく見てみましょう。
まず、バイナリ文字列を入力として受け取り、それを文字列変数 "s" に保存します。また、文字列のサイズを整変数「n」に保存します。
リーリー次に、文字列内の 0 の数を格納するために変数「cnt」を初期化します。次に、for ループを使用して文字列を反復処理します。 0 が出現するたびに、0 のカウントをインクリメントし、次の 2 ビットも 0 であるかどうかを確認します。その場合は、インデックスを 2 増やしてビットのペアを反転します。それ以外の場合は、インデックスを 1 ずつ増やして、隣接するビット ペアのみを反転します。
リーリー最後に、文字列からすべての 0 を削除するために必要な、隣接しないペアの反転の数を出力します。
リーリーテストケースの例
バイナリ文字列「100101000」について考えてみましょう。この文字列からすべての 0 を削除するために必要な、隣接しないペアの反転の最小数は、上記のアルゴリズムを使用して計算できます。
まず、位置 2 で 0 に遭遇します。 (1,3) ペアを反転して、文字列「110101000」を取得します。次に、位置 5 で次の 0 に遭遇します。 (1,7) ペアを反転して、文字列「111101000」を取得します。次に、位置 8 で次の 0 に遭遇します。 (1,9) ペアを反転して、文字列「111111000」を取得します。これで、文字列からすべての 0 が削除されました。
文字列からすべての 0 を削除するために必要な非隣接ペアの反転の数は 3 です。これを確認するには、入力文字列「100101000」に対して上記の C コードを実行します。
###結論は###この記事では、バイナリ文字列からすべての 0 を削除するために必要な、隣接しないペアの反転の最小数を決定する方法について説明しました。シンプルな貪欲アルゴリズムを使用してこの問題を解決し、C コードで実装します。また、アルゴリズムがどのように機能するかを説明するサンプル テスト ケースも提供します。
以上がバイナリ文字列内のすべてのゼロを削除するために必要な、隣接しないペアの反転の最小数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









プレイヤーは、Eye of Deep Space でゲームをプレイするときに画面を反転できます。多くのユーザーは、Eye of Deep Space で画面を反転する方法を知りません。プレイヤーは、コントロール センターで画面の回転をサポートするオプションをオンにしてから、に戻る必要があります。ゲーム。 Deep Space Eye の画面を反転する方法 1. 携帯電話の画面を開き、指で画面の下から上にスライドさせます。 2. コントロールセンターを開くと、コントロールセンターの右上隅に画面の回転をオフにするスイッチがあります。 3. それをクリックして画面の回転をオンにすると、コントロール センターで回転を制御するアイコンが強調表示されていることがわかります。 4. 画面の回転をサポートするアプリケーションを開くと、携帯電話の向きが変わるとアプリケーションも回転します。

2 進数演算は 2 進数に基づいた演算方法であり、その基本演算には加算、減算、乗算、除算が含まれます。 2 進算術には、基本的な演算に加えて、論理演算、変位演算、その他の演算も含まれます。論理演算には AND、OR、NOT などの演算が含まれ、変位演算には左シフト演算と右シフト演算が含まれます。これらの操作には、対応するルールとオペランド要件があります。

純粋な CSS を通じて画像反転効果を実現する方法とテクニック 序文: Web 開発では、ユーザー エクスペリエンスを向上させるために、Web ページにいくつかのアニメーション効果を追加する必要があることがよくあります。画像の反転効果は、一般的な効果の 1 つです。純粋な CSS を通じて画像の反転を実現するのは簡単で便利であるだけでなく、JavaScript などの他の言語を使用することによって生じる追加のオーバーヘッドも回避できます。この記事では、純粋な CSS を使用して画像の反転効果を実現する方法を紹介し、具体的なコード例を示します。 1. CSS3 変換を使用する

2 進数は 1 と 0 で表されます。 16 ビットの 16 進数体系は、2 進表現から 16 進表現に変換するために、{0,1,2,3…..9,A(10),B(11),…F(15)} となります。文字列 ID は、最下位側から始まるニブルと呼ばれる 4 ビットのチャンクにグループ化されます。各ブロックは、対応する 16 進数に置き換えられます。 16 進数と 2 進数の表現を明確に理解するために例を見てみましょう。 001111100101101100011101 3 E 5 B&N

EDVAC には 2 つの大きな改良点があります。1 つはバイナリの使用、もう 1 つは保存されたプログラムの完成です。これは、あるプログラム命令から次のプログラム命令に自動的に進み、その操作は命令を通じて自動的に完了できます。 「命令」にはデータやプログラムが含まれており、それらはコードの形で機械の記憶装置に入力されます、つまり、データを格納する同じ記憶装置を使用して、演算を実行するための命令を格納するという新しい概念です。 - 保存されたプログラムと呼ばれます。

HTML、CSS、および jQuery: 美しいカード反転効果を構築する Web デザインでは、特殊効果を適用することで、ページの対話性と視覚効果を高めることができます。カードめくり効果は、ユーザーにより鮮やかで興味深いブラウジング体験をもたらす一般的な特殊効果です。この記事では、HTML、CSS、jQuery を使用して美しいカード反転効果を構築する方法を紹介し、具体的なコード例を示します。まず、HTML の基本構造を準備する必要があります。カードの前面を表すために 2 つの div 要素を使用します。

Golang でバイナリ ファイルを読み取るにはどうすればよいですか?バイナリ ファイルは、コンピュータが認識して処理できるデータを含む、バイナリ形式で保存されたファイルです。 Golang では、いくつかのメソッドを使用してバイナリ ファイルを読み取り、必要なデータ形式に解析できます。 Golangでバイナリファイルを読み込む方法と具体的なコード例を紹介します。まず、OS パッケージの Open 関数を使用してバイナリ ファイルを開く必要があります。これにより、ファイル オブジェクトが返されます。それから私たちは作ることができます

コンピュータが 2 進法を使用する主な理由: 1. コンピュータは論理回路で構成されています。論理回路には通常、スイッチのオンとオフの 2 つの状態しかなく、これら 2 つの状態は「1」と「0」で表すことができます。 . 2 進法では 0 と 1 の 2 つの数値のみが使用されるため、送信時や処理時にエラーが発生しにくく、コンピュータの信頼性が高くなります。
