Jadual Kandungan
Contoh Contoh
Penjelasan
Pendekatan 1
Algoritma
Contoh
Output
Kaedah 2
Kesimpulan
Rumah pembangunan bahagian belakang C++ Terjemah yang berikut ke dalam bahasa Cina: Minimumkan penyingkiran 0 subrentetan untuk mengalih keluar semua kejadian 0 daripada rentetan binari bergelung

Terjemah yang berikut ke dalam bahasa Cina: Minimumkan penyingkiran 0 subrentetan untuk mengalih keluar semua kejadian 0 daripada rentetan binari bergelung

Aug 25, 2023 pm 03:41 PM
padam meminimumkan Rentetan binari gelung rupa

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"
Salin selepas log masuk
Output – 2
Salin selepas log masuk
Salin selepas log masuk

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’
Salin selepas log masuk
Output – 1
Salin selepas log masuk

Penjelasan

Kita boleh mengalih keluar semua sifar sekaligus.

Input –  str = ‘00110010’
Salin selepas log masuk
Output – 2
Salin selepas log masuk
Salin selepas log masuk

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'.

Terjemahan bahasa Cina bagi

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;
}
Salin selepas log masuk

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>
Salin selepas log masuk

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'.

Terjemahan bahasa Cina bagi

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;
}
Salin selepas log masuk

Output

The total number of minimum substrings of consecutive zeros required to remove is - 2
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bolehkah folder inetpub dipadamkan? Bagaimana dengan cepat memadam folder inetpub pada pemacu C Bolehkah folder inetpub dipadamkan? Bagaimana dengan cepat memadam folder inetpub pada pemacu C Mar 13, 2024 pm 02:00 PM

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 memadam nota Xiaohongshu Bagaimana untuk memadam nota Xiaohongshu Mar 21, 2024 pm 08:12 PM

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;

Adakah benar anda boleh disekat dan dipadamkan pada WeChat dan tidak dapat ditambahkan secara kekal? Adakah benar anda boleh disekat dan dipadamkan pada WeChat dan tidak dapat ditambahkan secara kekal? Apr 08, 2024 am 11:41 AM

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.

Apakah folder yang ditemui.000? Bolehkah folder yang dijumpai.000 dipadamkan? Apakah folder yang ditemui.000? Bolehkah folder yang dijumpai.000 dipadamkan? Mar 13, 2024 pm 08:52 PM

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

Bagaimana untuk memadam keluaran Xiaohongshu? Bagaimana untuk memulihkan selepas pemadaman? Bagaimana untuk memadam keluaran Xiaohongshu? Bagaimana untuk memulihkan selepas pemadaman? Mar 21, 2024 pm 05:10 PM

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.

Apakah fail hiberfil.sys? Bolehkah hiberfil.sys dipadamkan? Apakah fail hiberfil.sys? Bolehkah hiberfil.sys dipadamkan? Mar 15, 2024 am 09:49 AM

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

Cara memadam sepenuhnya Pembantu Pemindahan Fail WeChat_Pengenalan kepada cara menutup Pembantu Pemindahan Fail WeChat Cara memadam sepenuhnya Pembantu Pemindahan Fail WeChat_Pengenalan kepada cara menutup Pembantu Pemindahan Fail WeChat Mar 20, 2024 pm 08:31 PM

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];

Bagaimana untuk memadam sepenuhnya sejarah sembang TikTok Bagaimana untuk memadam sepenuhnya sejarah sembang TikTok May 07, 2024 am 11:14 AM

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.

See all articles