バイナリ文字列を昇順に並べ替えるために削除する必要がある文字の最小数
コンピューター サイエンスでは、文字列の操作は重要なトピックであり、スプライシング、部分文字列、反転などの操作が含まれます。文字列操作に関連する一般的な問題は、バイナリ文字列からすべてのゼロを削除することです。この記事では、この問題を解決するために、最小数の非隣接ペア反転を使用するアルゴリズムについて説明します。
###問題文###バイナリ文字列が与えられた場合、最小数の非隣接ペア反転を使用して文字列内のすべての 0 を削除する必要があります。反転は、2 つの隣接する文字を選択し、それらを入れ替えることとして定義されます。言い換えれば、文字列内のすべての 0 を文字列の最後に持ってくるために必要な反転の最小数を見つける必要があります。
###方法###貪欲アルゴリズムを使用して、この問題を解決できます。文字列の左側から開始して、0 を反転した最後のインデックスを最後まで追跡できます。遭遇した 0 ごとに、その位置を最後に反転された 0 と交換し、文字列の末尾に移動します。 1 が見つかった場合は、単純に次のインデックスに移動します。
アルゴリズムを詳しく見てみましょう -
2 つの変数「lastFlipped」と「flipCount」をそれぞれ -1 と 0 に初期化します。
バイナリ文字列を左から右にトラバースします。
現在の文字が「0」の場合、それをインデックス「lastFlipped 1」の文字と交換し、「lastFlipped」変数をインクリメントします。
スワップ操作ごとに「flipCount」変数を増やします。
トラバーサルが完了すると、すべての 0 が文字列の末尾になり、「flipCount」にはすべての 0 を削除するために必要な最小の反転数が含まれます。
-
###例###
これは、上記のアルゴリズムを実装するために使用される C コードです -
リーリー ###出力### リーリー テストケースの説明
バイナリ文字列「100101000」を例として取り上げます。最小数の非隣接ペア反転を使用して、文字列からすべての 0 を削除する必要があります。
最初、「lastFlipped」と「flipCount」はそれぞれ -1 と 0 に設定されます。
文字列を左から右にトラバースし始めます。
インデックス 1 で「0」が見つかりました。これをインデックス「lastFlipped 1」(つまりインデックス 0) の文字と交換し、「lastFlipped」を 0 にインクリメントします。文字列は「010101000」になります。 「flipCount」が 1 に増加します。
インデックス 4 で、別の「0」が出現します。これをインデックス「lastFlipped 1」(つまりインデックス 1) の文字と交換し、「lastFlipped」を 1 にインクリメントします。文字列は「011010000」になります。 「flipCount」が 2 に増加します。
インデックス 5 で、「1」が見つかります。次のインデックス
に移動するだけです
-
###結論は###
この記事では、最小数の非隣接ペア反転を使用してバイナリ文字列からすべての 0 を削除するアルゴリズムについて説明します。このアルゴリズムで使用されるアプローチは貪欲であるため、効率的で実装が容易になります。アルゴリズムを実装するための C コードとサンプル テスト ケースも提供します。
この問題は動的プログラミングを使用して解決することもできますが、貪欲アルゴリズムの方がよりシンプルで高速な解決策を提供します。このアルゴリズムの時間計算量は O(n) です。ここで、n はバイナリ文字列の長さです。 -
つまり、最小非隣接ペア反転アルゴリズムは文字列操作で便利なツールであり、さまざまな状況に適用できます。
以上がバイナリ文字列を昇順に並べ替えるために削除する必要がある文字の最小数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











小紅書メモを削除するにはどうすればよいですか? メモは小紅書アプリで編集できます。ほとんどのユーザーは小紅書メモの削除方法を知りません。次に、エディターがユーザーに小紅書メモの削除方法に関する写真とテキストを提供します。チュートリアル、興味のあるユーザーが来て、それを受講してください見てください!小紅書使い方チュートリアル 小紅書メモの削除方法 1. まず小紅書アプリを開いてメインページに入り、右下隅の[自分]を選択して特別エリアに入ります; 2. 次に、マイエリアで、表示されているメモページをクリックします下の図で、削除したいメモを選択します; 3. メモページに入り、右上隅の [3 つの点] をクリックします; 4. 最後に、下部に機能バーが展開され、[削除] をクリックして完了します。

1. まず、相手を永久にブロックして削除して永久に追加しないのは間違いで、ブロックして削除した後に相手を追加したい場合は、相手の同意だけが必要です。 2. ユーザーが誰かをブロックすると、相手はユーザーにメッセージを送信したり、ユーザーの友達サークルを表示したり、ユーザーと通話したりすることができなくなります。 3. ブロックとは、ユーザーの WeChat 連絡先リストから相手を削除することを意味するものではありません。 4. ユーザーが相手をブロックした後、ユーザーの WeChat 連絡先リストから相手を削除した場合、削除後に回復する方法はありません。 5. ユーザーが相手を再度友達として追加したい場合は、相手が同意してユーザーを再度追加する必要があります。

人気のソーシャル電子商取引プラットフォームとして、Xiaohongshu は日常生活やショッピング体験を共有するために多くのユーザーを魅了してきました。場合によっては、私たちが誤って不適切なコンテンツを公開してしまうことがありますが、個人的なイメージをより良く維持したり、プラットフォームの規制に準拠したりするために、適時に削除する必要があります。 1.Xiaohongshu リリースを削除するにはどうすればよいですか? 1. Xiaohonshu アカウントにログインし、個人のホームページに入ります。 2. 個人ホームページの下部で、「My Creations」オプションを見つけてクリックして入力します。 3. 「My Creations」ページでは、メモやビデオなどを含む、公開されているすべてのコンテンツを確認できます。 4. 削除する必要があるコンテンツを見つけて、右側の「...」ボタンをクリックします。 5. ポップアップ メニューで、[削除] オプションを選択します。 6. 削除を確認すると、個人ホームページおよび公開ページからコンテンツが削除されます。

1. Douyin アプリを開き、インターフェイスの下部にある [メッセージ] をクリックし、削除する必要があるチャット会話エントリをクリックします。 2. 任意のチャット記録を長押しし、[複数選択]をクリックし、削除したいチャット記録にチェックを入れます。 3. 右下隅の [削除] ボタンをクリックし、ポップアップ ウィンドウで [削除の確認] を選択して、これらのレコードを完全に削除します。

WeChat のファイル転送アシスタントはすべてのユーザーが利用でき、何かを記録するためのメモとして使用するユーザーもいます。では、WeChat ファイル転送アシスタントを完全に削除するにはどうすればよいでしょうか?以下で詳しくご紹介していきます。 WeChat ファイル転送アシスタントを完全に削除するには? 答え: [WeChat]-[ファイル転送アシスタントを長押し]-[このチャットを削除]。具体的な手順: 1. まず WeChat ソフトウェアを開き、ホームページに入った後、[ファイル転送アシスタント] を見つけて長押しします; 2. その後、ポップアップが未読としてマークされ、チャットを上部に固定して、次のことを行いますチャットを表示しない、チャットを削除する場合は、ここで[このチャットを削除]をクリックします。

Douyin では、ユーザーは自分の人生の詳細や才能を共有するだけでなく、他のユーザーと交流することもできます。このプロセスでは、写真やビデオなどのファイルを他のユーザーに送信する必要がある場合があります。では、Douyin で他の人にファイルを送信するにはどうすればよいでしょうか? 1.Douyin で他の人にファイルを送信するにはどうすればよいですか? 1. Douyin を開き、ファイルを送信するチャット インターフェイスに入ります。 2. チャット インターフェイスの「+」記号をクリックし、「ファイル」を選択します。 3. ファイル オプションで、写真、ビデオ、オーディオ、その他のファイルの送信を選択できます。送信したいファイルを選択後、「送信」をクリックします。 4. 相手がファイルを受け入れるまで待ちます。相手がそれを受け入れると、ファイルは正常に転送されます。 2.Douyin で他の人に送信したファイルを削除するにはどうすればよいですか? 1. Douyin を開き、送信したテキストを入力します。

日常のオフィスワークで、Webサイトの文章をコピーしてWordに直接貼り付けると、[下矢印]が表示されることがありますが、この[下矢印]は選択することで削除できますが、数が多すぎると[下矢印]が表示されます。では、すべての矢印を簡単に削除する方法はあるのでしょうか?そこで今回はWordの下向き矢印を削除する具体的な手順を紹介します!まず、Wordの[下矢印]は、実は[手動改行]を表しています。以下の図に示すように、すべての [下矢印] を [段落マーク] 記号に置き換えることができます。 2. 次に、メニュー バーの [検索と置換] オプションを選択します (下図の赤丸で示されています)。 3. [置換]コマンドをクリックすると、ポップアップボックスが表示されるので、[特殊記号]をクリックします。

小紅書は人気のあるソーシャル電子商取引プラットフォームであり、ユーザー間のインタラクティブなコメントはプラットフォーム上でのコミュニケーション手段として不可欠です。場合によっては、自分のコメントが他の人によって削除されていることがわかり、混乱することがあります。 1. 小紅書で他の人が削除したコメントを取得するにはどうすればよいですか?コメントが削除されたことに気付いた場合は、まずプラットフォーム上で関連する投稿や製品を直接検索して、コメントがまだ見つかるかどうかを確認してください。コメントが削除された後も表示される場合は、元の投稿の所有者によって削除された可能性があります。この時点で、元の投稿の所有者に連絡して、コメントを削除した理由を尋ね、コメントの復元をリクエストしてみてください。コメントが完全に削除され、元の投稿で見つからない場合、プラットフォーム上でコメントが復元される可能性は比較的低いです。他の方法を試すこともできます
