


Jadikan rentetan binari sama dengan berulang kali menggantikan bit kedua
Dalam masalah ini, kita perlu menukar rentetan bin1 kepada rentetan bin2 dengan menggantikan aksara kedua rentetan bin1 dengan nilai minimum atau maksimum antara aksara pertama dan kedua, dan memadamkan aksara pertama.
Memandangkan kita perlu mengalih keluar aksara pertama, kita perlu memastikan bahawa len2 terakhir − 1 aksara dalam dua rentetan adalah sama. Selain itu, kita perlu memastikan bahawa kita boleh mendapatkan aksara pertama rentetan kedua dengan melaksanakan operasi yang diberikan pada aksara permulaan rentetan bin1.
Pernyataan Masalah - Kami diberi bin1 dan bin2 rentetan binari panjang len1 dan len2 masing-masing. Kita perlu menyemak sama ada kita boleh menukar rentetan bin1 kepada rentetan bin2 dengan melakukan perkara berikut.
Kemas kini aksara kedua rentetan bin1 menggunakan nilai minimum atau maksimum bagi aksara pertama dan kedua rentetan bin1.
Alih keluar aksara pertama rentetan bin1, dan saiz rentetan akan dikurangkan sebanyak 1 setiap kali.
Contoh
Masuk
bin1 = "0101011"; bin2 = "011";
Output
Yes
Arahan- Kita boleh melakukan perkara berikut untuk menukar rentetan bin1 kepada rentetan bin2.
Kita boleh menggantikan aksara kedua dengan min(0,1) dan memadamkan aksara pertama. Oleh itu, rentetan menjadi 001011.
Kami melakukan operasi yang sama sekali lagi dan rentetan menjadi 01011.
Dalam beberapa operasi seterusnya, rentetan masing-masing menjadi 0011 dan 011.
Masuk
bin1 = "1110"; bin2 = "1110";
Output
Yes
Penjelasan - Rentetan yang diberikan sudah sama.
Masuk
bin1 = "101101"; bin2 = "1110";
Output
No
Penjelasan - Kami tidak boleh menukar rentetan bin1 kepada rentetan bin2 dengan melakukan operasi yang diberikan.
Kaedah 1
Jika panjang rentetan bin1 lebih kecil, kita tidak boleh menukarnya kepada rentetan bin2.
Dalam kes lain, len2 terakhir − 1 aksara rentetan bin1 kekal tidak berubah kerana kami tidak melakukan sebarang operasi padanya. Oleh itu, len2 − 1 aksara terakhir dalam kedua-dua rentetan hendaklah sama.
Selain itu, jika aksara pertama rentetan bin2 ialah '0', kita harus min() aksara permulaan rentetan bin1, dan ia harus mengandungi sekurang-kurangnya satu '0'.
Jika aksara pertama dalam rentetan bin2 ialah '1', kita harus melaksanakan operasi max() pada aksara permulaan rentetan bin2, dan ia harus mengandungi sekurang-kurangnya satu '1'.
Algoritma
Langkah 1 - Jika panjang bin1 kurang daripada panjang rentetan bin2, kembalikan palsu.
Langkah 2 - Lintas tali bin2 bermula dari kedudukan kedua.
Langkah 3 - Jika bin2[p] tidak sama dengan bin1[p + len1 - len2], kembalikan palsu kerana len2 -1 aksara terakhir tidak sama.
Langkah 4 - Lintas len1 pertama - len2 + 1 aksara dan semak jika ia mengandungi bin2[0] aksara. Jika ya, kembalikan benar.
Langkah 5 - Kembalikan palsu pada penghujung fungsi.
Contoh
#include <bits/stdc++.h> using namespace std; bool convertAtoB(string bin1, string bin2) { int len1 = bin1.size(), len2 = bin2.size(); // When length 1 is less than length 2 if (len1 < len2) { return false; } // Check whether substring bin1[p + len1 - len2]... bin1[len1] and bin2[1]... bin2[len2] for (int p = 1; p < len2; p++) { if (bin1[p + len1 - len2] != bin2[p]) { return false; } } // Check whether substring bin1[0... len1 - len2 - 1] contains bin2[0] for (int p = 0; p < len1 - len2 + 1; p++) { if (bin1[p] == bin2[0]) { return true; } } return false; } int main() { string bin1 = "0101011"; string bin2 = "011"; bool res = convertAtoB(bin1, bin2); if (res == true) { cout << "YES, It is possible to convert bin1 to bin2."; } else { cout << "NO, It is not possible to convert bin1 to bin2."; } }
Output
YES, It is possible to convert bin1 to bin2.
Kerumitan masa - O(N) untuk memadankan aksara rentetan.
Kerumitan ruang - O(1) kerana kami tidak menggunakan sebarang ruang dinamik.
Kami belajar untuk menukar rentetan binari pertama kepada rentetan binari kedua dengan mengikut operasi yang diberikan. Seorang pengaturcara mungkin cuba menyemak sama ada satu rentetan boleh ditukar kepada rentetan lain dengan menggantikan aksara terakhir dengan nilai minimum atau maksimum aksara kedua terakhir dan terakhir dan mengalih keluar aksara terakhir.
Atas ialah kandungan terperinci Jadikan rentetan binari sama dengan berulang kali menggantikan bit kedua. 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



PyCharm ialah persekitaran pembangunan bersepadu Python yang biasa digunakan dengan fungsi yang kaya dan kekunci pintasan yang boleh membantu pembangun meningkatkan kecekapan pengaturcaraan. Dalam proses pengaturcaraan harian, menguasai kemahiran penggantian kunci pintasan PyCharm boleh membantu pembangun menyelesaikan tugas dengan lebih cepat. Artikel ini akan memperkenalkan anda kepada beberapa kekunci pintasan gantian yang biasa digunakan dalam PyCharm untuk membantu anda meningkatkan kelajuan pengaturcaraan anda dengan mudah. 1. Penggantian Ctrl+R Dalam PyCharm, anda boleh menggunakan kekunci pintasan Ctrl+R untuk melakukan operasi penggantian.

Ramai rakan-rakan yang menggunakan pelayar edge di win10 telah menghadapi masalah halaman web dibuka berulang kali, jadi bagaimana untuk menyelesaikannya? Mari kita lihat penyelesaian terperinci di bawah. Perkara yang perlu dilakukan jika penyemak imbas tepi terus membuka halaman web berulang kali: 1. Masukkan penyemak imbas tepi dan klik tiga titik di penjuru kanan sebelah atas. 2. Klik "Tetapan" dalam bar tugas. 3. Cari "Kaedah pembukaan tepi Microsoft". 4. Klik menu lungsur turun dan pilih "Halaman Mula". 5. Mulakan semula pelayar selepas selesai untuk menyelesaikan masalah.

Gunakan fungsi StringBuilder.replace() java untuk menggantikan julat aksara yang ditentukan Dalam Java, kelas StringBuilder menyediakan kaedah replace(), yang boleh digunakan untuk menggantikan julat aksara yang ditentukan dalam rentetan. Sintaks kaedah ini adalah seperti berikut: publicStringBuilderreplace(intstart,intend,Stringstr) Kaedah di atas digunakan untuk menggantikan bintang indeks daripada

PyCharm ialah persekitaran pembangunan bersepadu Python yang berkuasa dengan fungsi dan alatan yang kaya yang boleh meningkatkan kecekapan pembangunan dengan ketara. Antaranya, fungsi penggantian merupakan salah satu fungsi yang kerap digunakan dalam proses pembangunan, yang boleh membantu pembangun mengubah suai kod dengan cepat dan meningkatkan kualiti kod. Artikel ini akan memperkenalkan fungsi gantian PyCharm secara terperinci, digabungkan dengan contoh kod khusus, untuk membantu orang baru menguasai dan menggunakan fungsi ini dengan lebih baik. Pengenalan kepada fungsi gantian Fungsi gantian PyCharm boleh membantu pembangun dengan cepat menggantikan teks yang ditentukan dalam kod

jQuery ialah perpustakaan JavaScript klasik yang digunakan secara meluas dalam pembangunan web Ia memudahkan operasi seperti pengendalian acara, memanipulasi elemen DOM, dan melaksanakan animasi pada halaman web. Apabila menggunakan jQuery, anda sering menghadapi situasi di mana anda perlu menggantikan nama kelas elemen Artikel ini akan memperkenalkan beberapa kaedah praktikal dan contoh kod tertentu. 1. Gunakan kaedah removeClass() dan addClass() jQuery menyediakan kaedah removeClass() untuk pemadaman

MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan yang menyediakan pelbagai fungsi untuk memproses dan mengendalikan data. Antaranya, fungsi REPLACE digunakan untuk menggantikan bahagian rentetan yang ditentukan. Dalam artikel ini, kami akan memperkenalkan cara menggunakan fungsi REPLACE untuk penggantian rentetan dalam MySQL dan menunjukkan penggunaannya melalui contoh kod. Mula-mula, mari kita lihat sintaks fungsi REPLACE: REPLACE(str,search_str,replace_str).

PyCharm ialah persekitaran pembangunan bersepadu yang popular di kalangan pengaturcara Ia menyediakan fungsi dan alatan yang berkuasa untuk menjadikan pengaturcaraan lebih cekap dan mudah. Dalam PyCharm, tetapan munasabah dan penggantian kekunci pintasan adalah salah satu kunci untuk meningkatkan kecekapan pengaturcaraan. Artikel ini akan memperkenalkan cara menggantikan kekunci pintasan dalam PyCharm untuk menjadikan pengaturcaraan lebih mudah. 1. Mengapakah kita harus menggantikan kekunci pintasan Dalam PyCharm, kekunci pintasan boleh membantu pengaturcara menyelesaikan pelbagai operasi dengan cepat dan meningkatkan kecekapan pengaturcaraan. Walau bagaimanapun, setiap orang mempunyai tabiat yang berbeza, dan sesetengah orang mungkin

Dalam Python, kita boleh menggantikan satu perkataan dengan perkataan lain dalam Excel menggunakan perpustakaan Python pihak ketiga yang dipanggil openpyxl. Microsoft Excel ialah alat yang berguna untuk mengurus dan menganalisis data. Menggunakan Python, kami boleh mengautomasikan beberapa tugas pengurusan data Excel. Dalam artikel ini, kita akan belajar cara menggantikan perkataan dalam Excel menggunakan Python. Sebelum memasang openpyxl untuk menggantikan Word dalam Excel, kami perlu memasang perpustakaan openpyxl dalam sistem menggunakan pengurus pakej Python. Untuk memasang openpyxl, masukkan arahan berikut dalam terminal atau command prompt. Pipinst
