


Terjemah yang berikut ke dalam bahasa Cina: Minimumkan penyingkiran 0 subrentetan untuk mengalih keluar semua kejadian 0 daripada rentetan binari bergelung
Dalam masalah ini, kita perlu mengeluarkan semua sifar daripada rentetan binari yang diberikan. Pada masa yang sama, kita perlu mengalih keluar pasangan sifar berturut-turut sekaligus dan mengira jumlah bilangan pasangan sifar yang dialih keluar.
Kita boleh menyelesaikan masalah dengan mengira bilangan pasangan sifar berturut-turut dalam rentetan yang diberikan Dalam tutorial ini, kita akan mempelajari dua penyelesaian yang berbeza untuk menyelesaikan masalah.
Pernyataan Masalah − Kami diberi rentetan binari bulat panjang N. Kita perlu mencari bilangan minimum sifar berturut-turut yang diperlukan untuk mengalih keluar semua sifar daripada rentetan.
Contoh Contoh
Input – str = "0011001"
Output – 2
Penjelasan
Kita boleh memadam str[0] dan str[1] bersama-sama. Selepas itu, kita boleh memadam str[4] dan str[5]. Jadi, kita perlu mengeluarkan 2 pasang sifar berturut-turut.
Input – str = ‘0000000’
Output – 1
Penjelasan
Kita boleh mengalih keluar semua sifar sekaligus.
Input – str = ‘00110010’
Output – 2
Penjelasan
Kami mengalih keluar can str[0], str[1] dan str[7] bersama-sama kerana rentetan binari adalah bulat Seterusnya, kami boleh mengalih keluar str[5] dan str[6] bersama-sama.
Pendekatan 1
Dalam kaedah ini kita akan mencari jumlah pasangan sifar berturut-turut dalam rentetan yang diberikan, yang akan menjawab soalan yang diberikan.
Algoritma
Langkah 1 - Mulakan pembolehubah 'cnt' kepada sifar.
Langkah 2 - Mulakan pembolehubah 'isOne' kepada nilai palsu untuk menjejaki nombor 1 dalam rentetan yang diberikan.
Langkah 3 - Ulangi rentetan menggunakan gelung. Dalam gelung, jika aksara semasa ialah '0', tingkatkan nilai 'cnt' sebanyak 1.
Langkah 4 − Gunakan gelung sementara untuk mengulang sehingga kita terus mencari aksara seterusnya iaitu '0' dan meningkatkan nilai 'I' sebanyak 1.
Langkah 5 - Jika aksara semasa ialah '1', tukar nilai pembolehubah 'isOne' kepada benar, menunjukkan bahawa rentetan mengandungi sekurang-kurangnya satu '1'.
Langkah 6 − Setelah lelaran gelung selesai, Jika nilai 'isOne' adalah palsu, ini bermakna rentetan hanya mengandungi sifar 1 dalam kes sedemikian.
Langkah 7 − Jika aksara pertama dan terakhir ialah '0', kurangkan nilai 'cnt' sebanyak 1 kerana rentetan adalah bulat.
Langkah 8 − Kembalikan nilai 'cnt'.
Contoh
ialah:Contoh
#include <bits/stdc++.h> using namespace std; int countRemovels(string str, int N){ // to store the count of 0s int cnt = 0; bool isOne = false; // Iterate over the string for (int i = 0; i < N; i++){ // If the current character is 0, increment the count of 0s if (str[i] == '0'){ cnt++; // traverse the string until a 1 is found while (str[i] == '0'){ i++; } } else{ // If the current character is 1, then set isOne as true isOne = true; } } // If string contains only 0s, then return 1. if (!isOne) return 1; // If the first and last character is 0, then decrement the count, as the string is circular. if (str[0] == '0' && str[N - 1] == '0'){ cnt--; } // return cnt return cnt; } int main(){ string str = "0011001"; int N = str.size(); cout << "The total number of minimum substrings of consecutive zeros required to remove is - " << countRemovels(str, N); return 0; }
Output
The total number of minimum substrings of consecutive zeros required to remove is - 2<font face="sans-serif"><span style="font-size: 16px; background-color: rgb(255, 255, 255);">.</span></font></p><p>
Kerumitan ruang - O(1)
Kaedah 2
Dalam kaedah ini, kami akan mengira bilangan minimum subrentetan pengalih keluar sifar yang diperlukan untuk mengalih keluar semua sifar dengan mengira perbezaan elemen bersebelahan.
Algoritma
Langkah 1 − Tentukan pembolehubah 'cnt' dan 'isOne', dan mulakan dengan 0 dan false, masing-masing.
Langkah 2 − Gunakan untuk gelung untuk membuat lelaran N-1, dengan N ialah panjang rentetan.
Langkah 3 − Dalam gelung, semak sama ada aksara semasa ialah '0,' dan aksara seterusnya ialah '1', naikkan nilai 'cnt' sebanyak 1. Jika tidak, tukar nilai 'isOne' berubah menjadi benar.
Langkah 4 - Jika aksara terakhir ialah '0', dan aksara pertama ialah '1', maka naikkan nilai 'cnt' sebanyak 1.
Langkah 5 - Jika nilai 'isOne' adalah palsu, kembalikan 1.
Langkah 6 - Kembalikan nilai pembolehubah 'cnt'.
Contoh
ialah:Contoh
#include <bits/stdc++.h> using namespace std; int countRemovels(string str, int N){ // to store the count of 0s int cnt = 0; // to check if there is at least one 1 bool isOne = false; // traverse the string for (int i = 0; i < N - 1; i++) { // if the current character is 0, the next is 1, then increment count by 1 if (str[i] == '0' && str[i + 1] == '1'){ cnt++; } else{ // if the current character is 1, then set isOne to true isOne = true; } } // for circular string, if the last character is 0 and the first is 1, then increment count by 1 if (str[N - 1] == '0' && str[0] == '1'){ cnt++; } // if there is no 1 in the string, then return 1 if (!isOne){ return 1; } return cnt; // return cnt } int main(){ string str = "0011001"; int N = str.size(); cout << "The total number of minimum substrings of consecutive zeros required to remove is - " << countRemovels(str, N); return 0; }
Output
The total number of minimum substrings of consecutive zeros required to remove is - 2
Kesimpulan
Kami telah melihat dua penyelesaian berbeza untuk menyelesaikan masalah yang diberikan. Dalam kaedah pertama kita mengira jumlah bilangan pasangan sifar berturut-turut, dalam kaedah kedua kita mengira jumlah bilangan aksara bersebelahan yang tidak sepadan.
Atas ialah kandungan terperinci Terjemah yang berikut ke dalam bahasa Cina: Minimumkan penyingkiran 0 subrentetan untuk mengalih keluar semua kejadian 0 daripada rentetan binari bergelung. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Didapati terdapat folder inetpub pada pemacu C komputer yang mengambil banyak memori Apakah folder inetpub ini? Bolehkah ia dipadamkan terus? Sebenarnya, inetpub ialah folder pada pelayan IIS Nama penuh IIS ialah Perkhidmatan Maklumat Internet, iaitu Perkhidmatan Maklumat Internet Ia boleh digunakan untuk membina dan menyahpepijat tapak web. Kaedah khusus adalah seperti berikut: 1. Klik kanan menu Mula dan pilih "Program dan Ciri". 2. Selepas dibuka, klik "Hidupkan atau matikan ciri Windows". 3. Dalam senarai ciri Windows, nyahtanda II

Bagaimana untuk memadamkan nota Xiaohongshu? pandangan! Tutorial penggunaan Xiaohongshu Cara memadam nota Xiaohongshu 1. Mula-mula buka APP Xiaohongshu dan masukkan halaman utama, pilih [Saya] di sudut kanan bawah untuk memasuki kawasan khas 2. Kemudian di kawasan Saya, klik pada halaman nota sebagai ditunjukkan di bawah , pilih nota yang anda mahu padamkan;

1. Pertama sekali, adalah palsu untuk menyekat dan memadam seseorang secara kekal dan tidak menambahkannya secara kekal. Jika anda ingin menambah pihak lain selepas anda menyekat dan memadamkannya, anda hanya memerlukan persetujuan pihak lain. 2. Jika pengguna menyekat seseorang, pihak yang satu lagi tidak akan dapat menghantar mesej kepada pengguna, melihat kalangan rakan pengguna atau membuat panggilan dengan pengguna. 3. Menyekat tidak bermakna memadamkan pihak lain daripada senarai kenalan WeChat pengguna. 4. Jika pengguna memadamkan pihak lain daripada senarai kenalan WeChat pengguna selepas menyekat mereka, tiada cara untuk pulih selepas pemadaman. 5. Jika pengguna ingin menambah pihak yang satu lagi sebagai rakan semula, pihak yang satu lagi perlu bersetuju dan menambah pengguna itu semula.

Dalam proses penggunaan harian komputer, anda mungkin menerima mesej ralat bahawa fail found.000 hilang dan rosak Apakah folder ini dijumpai.000? Bolehkah ia dipadam jika ia tidak berguna lagi? Oleh kerana ramai orang tidak tahu fail ini, izinkan saya memberitahu anda tentang folder yang dijumpai.000 secara terperinci~ 1. Apakah folder yang dijumpai.000 Apabila komputer hilang sebahagian atau sepenuhnya kerana penutupan tidak sah, , anda boleh mencari folder khas bernama "found.000" dan fail dengan sambungan ".chk" yang terkandung di dalamnya dalam direktori yang ditentukan dalam partition sistem. Ini "fo

Sebagai platform e-dagang sosial yang popular, Xiaohongshu telah menarik sejumlah besar pengguna untuk berkongsi kehidupan harian dan pengalaman membeli-belah mereka. Kadangkala kami mungkin secara tidak sengaja menerbitkan beberapa kandungan yang tidak sesuai, yang perlu dipadamkan dalam masa untuk mengekalkan imej peribadi kami dengan lebih baik atau mematuhi peraturan platform. 1. Bagaimana untuk memadam keluaran Xiaohongshu? 1. Log masuk ke akaun Xiaohongshu anda dan masukkan halaman utama peribadi anda. 2. Di bahagian bawah halaman utama peribadi, cari pilihan "Ciptaan Saya" dan klik untuk masuk. 3. Pada halaman "Ciptaan Saya", anda boleh melihat semua kandungan yang diterbitkan, termasuk nota, video, dsb. 4. Cari kandungan yang perlu dipadamkan dan klik butang "..." di sebelah kanan. 5. Dalam menu pop timbul, pilih pilihan "Padam". 6. Selepas mengesahkan pemadaman, kandungan akan hilang dari laman utama peribadi anda dan halaman awam.

Baru-baru ini, ramai netizen bertanya kepada editor, apakah itu fail hiberfil.sys? Bolehkah hiberfil.sys mengambil banyak ruang pemacu C dan dipadamkan? Editor boleh memberitahu anda bahawa fail hiberfil.sys boleh dipadamkan. Mari kita lihat butiran di bawah. hiberfil.sys ialah fail tersembunyi dalam sistem Windows dan juga fail hibernasi sistem. Ia biasanya disimpan dalam direktori akar pemacu C, dan saiznya bersamaan dengan saiz memori yang dipasang sistem. Fail ini digunakan apabila komputer sedang hibernasi dan mengandungi data memori sistem semasa supaya ia boleh dipulihkan dengan cepat kepada keadaan sebelumnya semasa pemulihan. Oleh kerana saiznya adalah sama dengan kapasiti memori, ia mungkin mengambil jumlah ruang cakera keras yang lebih besar. hiber

Pembantu pemindahan fail WeChat tersedia untuk setiap pengguna Sesetengah pengguna menggunakannya sebagai memo untuk merekodkan beberapa perkara. Jadi bagaimana untuk memadam sepenuhnya Pembantu Pemindahan Fail WeChat? Izinkan saya memperkenalkannya kepada anda secara terperinci di bawah. Bagaimana untuk memadam sepenuhnya Pembantu Pemindahan Fail WeChat Jawapan: [WeChat]-[Tekan lama Pembantu Pemindahan Fail]-[Padam sembang ini]. Langkah-langkah khusus: 1. Mula-mula buka perisian WeChat Selepas memasuki halaman utama, kami mencari [Pembantu Pemindahan Fail] dan tekan dan tahan 2. Kemudian pop timbul akan ditandakan sebagai belum dibaca, sematkan sembang ke bahagian atas, lakukan tidak memaparkan sembang, dan memadam sembang Di sini Kita boleh klik [Padam sembang ini];

1. Buka apl Douyin, klik [Mesej] di bahagian bawah antara muka dan klik entri perbualan sembang yang perlu dipadamkan. 2. Tekan lama mana-mana rekod sembang, klik [Multiple Select], dan semak rekod sembang yang ingin anda padamkan. 3. Klik butang [Padam] di penjuru kanan sebelah bawah dan pilih [Sahkan pemadaman] dalam tetingkap pop timbul untuk memadam rekod ini secara kekal.
