Jadual Kandungan
Algoritma
Contoh
Output
Kesimpulan
Rumah pembangunan bahagian belakang C++ Menjadikan rentetan binari yang diberikan sama dengan berulang kali menggantikan dua 0 berturut-turut dengan satu 1

Menjadikan rentetan binari yang diberikan sama dengan berulang kali menggantikan dua 0 berturut-turut dengan satu 1

Sep 01, 2023 pm 03:13 PM
rentetan binari berterusan Ulangi penggantian

Menjadikan rentetan binari yang diberikan sama dengan berulang kali menggantikan dua 0 berturut-turut dengan satu 1

Dalam mana-mana bahasa pengaturcaraan, rentetan binari ialah koleksi aksara 0 dan 1. Pada setiap peringkat, rentetan binari mengikut pendekatan bahawa rentetan hanya boleh mengandungi dua aksara ini.

Watak dalam rentetan berterusan ialah aksara yang indeksnya berbeza sebanyak 1. Mari kita pertimbangkan dua indeks, i dan j, ia dikatakan selanjar jika |j-i| = 1.

Dalam C++, jika dua rentetan adalah setara, ia bermakna:

  • Watak yang sepadan dalam dua rentetan adalah sama.

  • Panjang rentetan adalah sama dan aksara pada indeks yang sepadan bertepatan.

Beberapa contoh untuk menggambarkan penyataan masalah adalah seperti berikut -

Contoh Contoh

str1 - "10001"

str2 - "101"

Penyelesaian-

str1 tidak boleh ditukar kepada str2 kerana dalam proses menukar str1 untuk mencipta rentetan setara str2, kita akan mendapat str1 sebagai "1011" dan str2 sebagai "101".

Contoh 2 - Mari kita pertimbangkan input berikut −

str1 - "001"

str2 - "11"

Penyelesaian-

str1 boleh ditukar kepada str2 dengan menukar dua sifar pertama kepada 1.

Gunakan padanan aksara dan traversal rentetan dalam C++ untuk menyelesaikan masalah berikut.

Algoritma

  • Langkah 1 - Dua penunjuk i dan j digunakan untuk mengulang rentetan s1 dan s2 secara serentak.

  • Langkah 2 - Jika aksara pada kedua-dua indeks sepadan, kami menambah penunjuk i dan j.

  • Langkah 3 − Jika aksara tidak sama, kami menyemak sama ada aksara pada indeks ke-i dan (i+1) ialah '0' dan sama ada aksara pada indeks ke-j ialah '1 '.

  • Langkah 4 - Jika keadaan sedemikian wujud, penukaran boleh dilakukan. Penunjuk i ditambah dengan dua kedudukan dan j ditambah dengan satu kedudukan indeks kerana kedua-dua sifar ditukar kepada satu.

  • Langkah 5 - Jika watak tidak sama dan situasi di atas tidak wujud, penukaran tidak boleh dilakukan.

  • Langkah 6 − Jika kedua-dua penunjuk i dan j berjaya mencapai kedudukan akhir, s1 boleh ditukar kepada s2.

Contoh

Coretan kod berikut mengambil dua rentetan binari sebagai input dan menyemak sama ada dua rentetan itu boleh bersamaan dengan penggantian aksara mudah berdasarkan syarat yang ditentukan

//including the required libraries
#include <bits/stdc++.h>
using namespace std;

//convert consecutive 0's to 1
bool convertBinary(string s1, string s2){

   //fetching the lengths of both the strings
   int len1 = s1.length();
   int len2 = s2.length();
   string temp ="";

   //maintaining counters of both the strings
   int i = 0, j = 0;

   //iterating over both the strings simultaneously
   while (i < len1 && j < len2) {

      //if both the characters are equivalent in nature
      //skip to next character
      if (s1[i] == s2[j]) {
         temp+=s1[i];

         //incrementing both pointers
         i++;
         j++;
      }

      // if both characters differ
      else {

         // checking if '00' of s1 can be converted to '1' of s2
         if(s2[j]=='1' && s1[i]=='0'){

            //checking if i+1th index exists and is equivalent to 0
            if(i+1 < len1 && s1[i+1]=='0'){

               //conversion is possible
               //skip two 0's of s1 since converted to 1 in s2
               temp+='1';
               i += 2;
               j++;
            } else {
               return false;
            }
         }

         // If not possible to combine
         else {
            return false;
         }
      }
   }
   cout<<"Entered string2 "<<s2<<"\n";
   cout<<"Converted string1 "<<temp<<"\n";

   //check if both the strings are returned to end position
   if (i == len1 && j == len2)
      return true;
      return false;
}

// calling the conversion rate
int main(){
   string str1 = "100100";
   string str2 = "1111";

   //capturing result
   cout<<"Entered string1 "<<str1<<"\n";
   bool res = convertBinary(str1, str2);
   if (res)
      cout << "First string can be converted to second";
   else
      cout << "First string can't be converted to second";
   return 0;
}
Salin selepas log masuk

Output

Entered string1 100100
Entered string2 1111
Converted string1 1111
First string can be converted to second
Salin selepas log masuk

Kesimpulan

Memandangkan kaedah ini boleh membandingkan dengan cekap rentetan input aksara mengikut aksara, kerumitan masa ialah O(min(panjang rentetan)). Traversal rentetan adalah aspek penting dalam menyelesaikan masalah rentetan.

Atas ialah kandungan terperinci Menjadikan rentetan binari yang diberikan sama dengan berulang kali menggantikan dua 0 berturut-turut dengan satu 1. 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)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu 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)

Urutan tidak bertambah terpanjang dalam rentetan binari Urutan tidak bertambah terpanjang dalam rentetan binari Sep 07, 2023 pm 11:13 PM

Dalam masalah ini, kita perlu mencari urutan tidak bertambah terpanjang bagi rentetan yang diberikan. Tidak bertambah bermakna aksara sama ada sama atau dalam susunan menurun. Memandangkan rentetan binari hanya mengandungi "0" dan "1", rentetan yang terhasil hendaklah sama ada bermula dengan "1" dan berakhir dengan "0", atau bermula dan berakhir dengan "0" atau "1". Untuk menyelesaikan masalah ini, kami akan mengira awalan "1" dan akhiran "0" pada setiap kedudukan rentetan dan mencari jumlah maksimum awalan "1" dan akhiran "0". Pernyataan Masalah - Kami diberi rentetan binari str. Kita perlu mencari urutan tidak bertambah terpanjang daripada rentetan yang diberikan. Contoh Input–str="010100"Output–4 menggambarkan bukan rekursif terpanjang

Ditulis dalam C++, cari bilangan pilih atur unik rentetan binari bermula dengan 1 Ditulis dalam C++, cari bilangan pilih atur unik rentetan binari bermula dengan 1 Sep 05, 2023 am 09:01 AM

Dalam masalah yang diberikan, kita diberi rentetan yang terdiri daripada 0 dan 1 kita perlu mencari jumlah bilangan semua pilih atur bermula dengan 1. Oleh kerana jawapannya mungkin jumlah yang besar, kami mengambilnya modulo 1000000007 dan mengeluarkannya. Input:str="10101001001"Output:210Input:str="101110011"Output:56 Kami akan menyelesaikan masalah ini dengan menggunakan beberapa matematik gabungan dan menyediakan beberapa formula. Kaedah Penyelesaian Dalam kaedah ini kita akan mengira bilangan 0 dan 1. Sekarang andaikan n ialah nombor 1 yang muncul dalam rentetan kami dan m ialah bilangan 0 yang muncul dalam rentetan kami

Dalam PHP, fungsi fungsi pack() adalah untuk menukar data kepada rentetan binari Dalam PHP, fungsi fungsi pack() adalah untuk menukar data kepada rentetan binari Aug 31, 2023 pm 02:05 PM

Fungsi pack() mengemas data ke dalam rentetan binari. Pek sintaks(format,args) Format parameter - format untuk digunakan. Berikut ialah nilai yang mungkin - a - rentetan berlapik NUL A - rentetan empuk ruang h - rentetan perenambelasan, nibble rendah dahulu H - rentetan perenambelasan, nibble tinggi dahulu c - char C yang ditandatangani - char s yang tidak ditandatangani - ditandatangani pendek (sentiasa 16 bit , pesanan bait mesin) S - pendek tidak ditandatangani (sentiasa 16 bit, susunan bait mesin) n - pendek tidak ditandatangani (sentiasa 16 bit, susunan bait endian besar) v - pendek tidak ditandatangani (sentiasa 16 bit, susunan bait endian kecil) i - integer bertanda (bergantung pada saiz mesin dan susunan bait) I - Tiada integer yang ditandatangani (bergantung pada

Adakah saya perlu memastikan perisian pemacu tetikus terbuka? Adakah saya perlu memastikan perisian pemacu tetikus terbuka? Feb 19, 2024 pm 10:40 PM

Sekiranya pemacu tetikus sentiasa dihidupkan? Tetikus adalah salah satu peranti input yang sangat diperlukan dalam penggunaan komputer harian kita. Selain kualiti perkakasan itu sendiri, pemacu tetikus juga merupakan kunci kepada fungsi normal tetikus. Walau bagaimanapun, ramai orang mempunyai beberapa soalan mengenai peranan dan keperluan pemandu tetikus, terutamanya sama ada pemandu tetikus perlu dihidupkan sepanjang masa. Pertama, kita perlu memahami apa yang dilakukan oleh pemandu tetikus. Pemacu tetikus ialah program perisian yang tanggungjawab utamanya adalah untuk berkomunikasi dengan sistem pengendalian untuk mengenal pasti dan mengawal pergerakan tetikus, klik dan menatal. Pemandu tetikus boleh

Menyemak sama ada rentetan boleh membentuk rentetan palindrom dengan menukar pasangan aksara pada indeks dengan aksara tidak sama dalam rentetan binari Menyemak sama ada rentetan boleh membentuk rentetan palindrom dengan menukar pasangan aksara pada indeks dengan aksara tidak sama dalam rentetan binari Sep 02, 2023 pm 08:09 PM

Pernyataan Masalah Kami mempunyai rentetan str dan rentetan binari B. Panjang kedua-dua rentetan adalah sama dengan N. Kita perlu menyemak sama ada kita boleh membuat rentetan str rentetan palindrom dengan menukar aksaranya beberapa kali pada mana-mana pasangan indeks yang mengandungi aksara tidak sama dalam rentetan B. Contoh Contoh Input str='AAS' B='101' Output 'YA' Terjemahan Cina bagi Penjelasan ialah: Penjelasan Kita boleh menukar str[1] dan str[2] kerana B[1] dan B[2] tidak sama . Rentetan akhir boleh menjadi 'ASA'. Input str=‘AASS’ B=‘1111’ dan keluaran ‘No’ Terjemahan Bahasa Cina bagi Explanation ialah: Penjelasan bahawa kita tidak boleh membuat string palindrom,

Maksimumkan fungsi yang diberikan dengan memilih subrentetan panjang yang sama daripada rentetan binari yang diberikan Maksimumkan fungsi yang diberikan dengan memilih subrentetan panjang yang sama daripada rentetan binari yang diberikan Aug 28, 2023 am 09:49 AM

Memandangkan dua rentetan binari str1 dan str2 yang sama panjang, kita perlu memaksimumkan nilai fungsi yang diberikan dengan memilih subrentetan daripada rentetan yang diberikan dengan panjang yang sama. Fungsi yang diberikan adalah seperti ini - fun(str1,str2)=(len(substring))/(2^xor(sub1,sub2)). Di sini, len(substring) ialah panjang subrentetan pertama dan xor(sub1,sub2) ialah XOR substring yang diberikan, ini mungkin kerana ia adalah rentetan binari. Contoh Input1:stringstr1=10110&stringstr2=11101Output:3 menggambarkan kami

Bilangan pergerakan minimum yang diperlukan untuk meletakkan semua 0 sebelum 1 dalam rentetan binari Bilangan pergerakan minimum yang diperlukan untuk meletakkan semua 0 sebelum 1 dalam rentetan binari Sep 23, 2023 pm 01:29 PM

Pernyataan Masalah Kami diberikan str rentetan binari dan kami dikehendaki mengalih keluar aksara minimum daripada rentetan supaya kami boleh meletakkan semua sifar sebelum satu. Contoh input str=‘00110100111’ Output 3 Penerangan Di sini, kita boleh mencapai output 3 dalam dua cara. Kita boleh mengalih keluar arr[2], arr[3] dan arr[5] atau arr[4], arr[6] dan arr[7] daripada rentetan. Input str=‘001101011’ dan output 2 menunjukkan bahawa kita boleh memadamkan arr[4] dan arr[6] dan meletakkan semua sifar sebelum 1. Input str=‘000111’ Output 0 bermaksud bahawa dalam rentetan yang diberikan, semua sifar telah diletakkan sebelum 1, jadi kita tidak perlu bermula dari

Hitung rentetan perduaan panjang N yang merupakan gabungan berulang subrentetan Hitung rentetan perduaan panjang N yang merupakan gabungan berulang subrentetan Sep 07, 2023 am 10:13 AM

Tujuan artikel ini adalah untuk melaksanakan program untuk mengira bilangan rentetan binari panjang N yang dibentuk oleh penggabungan berulang subrentetan. Matlamatnya adalah untuk menentukan bilangan rentetan perduaan panjang N boleh dicipta dengan berulang kali menggabungkan subrentetan individu bagi teks yang diberikan, dengan N ialah integer positif. Pernyataan Masalah Laksanakan atur cara yang mengira bilangan rentetan binari panjang N yang menggabungkan subrentetan berulang kali. Contoh Contoh 1 Letus mengambil Input, N = 3 Output: 2 Terjemahan Cina bagi Penjelasan ialah: Penjelasan Berikut menyenaraikan rentetan binari yang boleh dilaksanakan dengan panjang N = 3, di mana subrentetan berulang kali digabungkan. "000":Thesubstr

See all articles