Jadual Kandungan
Pernyataan Masalah
Kaedah
Contoh
Output
Perihalan kes ujian
Kesimpulan
Rumah pembangunan bahagian belakang C++ Apakah bilangan minimum pertukaran yang diperlukan supaya subrentetan yang diberikan mengandungi tepat K 1?

Apakah bilangan minimum pertukaran yang diperlukan supaya subrentetan yang diberikan mengandungi tepat K 1?

Aug 25, 2023 pm 11:25 PM
subrentetan pertukaran k

Apakah bilangan minimum pertukaran yang diperlukan supaya subrentetan yang diberikan mengandungi tepat K 1?

Mencari bilangan swap minimum yang diperlukan untuk subrentetan mengandungi K yang tepat adalah masalah biasa dalam sains komputer dan pengaturcaraan. Dalam artikel ini, kami akan menyelidiki masalah ini dan menyediakan penyelesaian C++ untuknya. Soalan ini mempunyai aplikasi dalam pelbagai bidang, termasuk manipulasi rentetan, pengoptimuman struktur data dan cabaran pengekodan dalam temu bual.

Pernyataan Masalah

Memandangkan rentetan binari dan nombor K, tugasnya adalah untuk mencari bilangan swap minimum yang diperlukan untuk memastikan setiap subrentetan rentetan mempunyai K yang tepat.

Kaedah

Untuk menyelesaikan masalah ini, kita boleh menggunakan kaedah dua mata dan teknologi tingkap gelongsor. Idea asas adalah untuk mengekalkan tetingkap saiz K dan mengira bilangan swap yang diperlukan untuk semua 1 dalam tetingkap.

Contoh

Ini adalah fungsi C++ yang melaksanakan kaedah di atas -

#include<bits/stdc++.h>
using namespace std;

int minSwaps(string s, int K) {
   int n = s.length();
   vector<int> onesPrefix(n, 0);
   if(s[0] == '1') onesPrefix[0] = 1;
   
   for(int i = 1; i < n; i++) {
      onesPrefix[i] = onesPrefix[i-1];
      if(s[i] == '1') onesPrefix[i]++;
   }
   
   int ans = INT_MAX;
   for(int i = 0; i <= n - K; i++) {
      int j = i + K - 1;
      int ones = onesPrefix[j] - ((i == 0) ? 0 : onesPrefix[i - 1]);
      ans = min(ans, K - ones);
   }
   
   return ans;
}

int main() {
   string s = "10010110";
   int K = 3;
   cout << "Minimum number of swaps = " << minSwaps(s, K) << endl;
   return 0;
}
Salin selepas log masuk

Output

Minimum number of swaps = 1
Salin selepas log masuk

Perihalan kes ujian

Katakan rentetan itu ialah "10010110", K = 3.

Dalam rentetan binari awal "10010110", kita mahu mempunyai tepat 3 1 dalam setiap subrentetan saiz 3. Sebagai contoh, subrentetan "100" memerlukan 2 pertukaran untuk menjadi "111". Begitu juga, subrentetan "001" juga memerlukan 2 pertukaran. Dengan mengulangi rentetan, kami mendapati bahawa bilangan swap minimum yang diperlukan untuk subrentetan "101" ialah 1.

Kesimpulan

Soalan ini ialah contoh yang bagus tentang cara menggabungkan pemahaman tentang algoritma, struktur data dan bahasa C++ untuk menyelesaikan masalah yang kompleks. Memahami dan melaksanakan soalan sedemikian boleh menjadi sangat bermanfaat untuk jurutera perisian, terutamanya dalam wawancara pengekodan dan pengaturcaraan kompetitif.

Atas ialah kandungan terperinci Apakah bilangan minimum pertukaran yang diperlukan supaya subrentetan yang diberikan mengandungi tepat K 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 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 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)

Cara menggunakan fungsi LOCATE dalam MySQL untuk mencari kedudukan subrentetan dalam rentetan Cara menggunakan fungsi LOCATE dalam MySQL untuk mencari kedudukan subrentetan dalam rentetan Jul 25, 2023 am 09:45 AM

Cara menggunakan fungsi LOCATE dalam MySQL untuk mencari kedudukan substring dalam rentetan Dalam MySQL, terdapat banyak fungsi yang boleh digunakan untuk memproses rentetan. Antaranya, fungsi LOCATE adalah fungsi yang sangat berguna yang boleh digunakan untuk mencari kedudukan substring dalam rentetan. Sintaks fungsi LOCATE adalah seperti berikut: LOCATE(subrentetan, rentetan,[kedudukan]) dengan subrentetan ialah subrentetan untuk ditemui dan rentetan ialah subrentetan untuk ditemui.

Kira bilangan kejadian subrentetan secara rekursif dalam Java Kira bilangan kejadian subrentetan secara rekursif dalam Java Sep 17, 2023 pm 07:49 PM

Diberi dua rentetan str_1 dan str_2. Matlamatnya adalah untuk mengira bilangan kejadian subrentetan str2 dalam rentetan str1 menggunakan prosedur rekursif. Fungsi rekursif ialah fungsi yang memanggil dirinya dalam definisinya. Jika str1 ialah "Iknowthatyouknowthatiknow" dan str2 ialah "tahu" bilangan kejadian ialah -3 Mari kita fahami melalui contoh. Contohnya, input str1="TPisTPareTPamTP", str2="TP";

Fungsi strtok_r() ialah fungsi dalam bahasa C Fungsinya adalah untuk memisahkan rentetan kepada satu siri subrentetan. Fungsi strtok_r() ialah fungsi dalam bahasa C Fungsinya adalah untuk memisahkan rentetan kepada satu siri subrentetan. Aug 26, 2023 am 09:45 AM

Fungsi ini serupa dengan fungsi strtok(). Satu-satunya perbezaan utama ialah _r, yang dipanggil fungsi reentrant. Fungsi reentrant ialah fungsi yang boleh diganggu semasa pelaksanaan. Fungsi jenis ini boleh digunakan untuk menyambung semula pelaksanaan. Oleh itu, fungsi reentrant adalah thread-safe, yang bermaksud ia boleh diganggu dengan selamat oleh thread tanpa menyebabkan sebarang kerosakan. Fungsi strtok_r() mempunyai parameter tambahan yang dipanggil konteks. Dengan cara ini fungsi boleh dipulihkan di lokasi yang betul. Sintaks fungsi strtok_r() adalah seperti berikut: #include<string.h>char*strtok_r(char*string,constchar*limiter,char**

Bagaimana untuk menambah ruang swap pada Ubuntu 22.04 LTS Bagaimana untuk menambah ruang swap pada Ubuntu 22.04 LTS Feb 20, 2024 am 11:12 AM

Ruang swap memainkan peranan penting dalam sistem Linux, terutamanya apabila sistem kekurangan ingatan. Ia bertindak sebagai ruang storan memori sandaran yang membantu sistem berjalan dengan lancar dan mengekalkan kestabilan walaupun di bawah beban yang tinggi. Artikel ini memberi anda panduan terperinci untuk menambah ruang swap pada Ubuntu 22.04LTS untuk memastikan prestasi sistem anda dioptimumkan dan boleh mengendalikan pelbagai beban kerja. Memahami Ruang Swap Space Swap menyediakan memori maya yang digunakan untuk menambah RAM fizikal sistem. Apabila sistem kekurangan RAM, kernel menukar data ke cakera untuk mengelakkan kehabisan memori dan sistem ranap. Sistem Linux biasanya menggunakan ruang swap untuk mengendalikan situasi ini. Jalankan berbilang aplikasi intensif memori secara serentak untuk memproses fail atau data yang sangat besar

Ungkapan Biasa PHP: Cara mengekstrak aksara tertentu daripada rentetan ke subrentetan pada penghujungnya Ungkapan Biasa PHP: Cara mengekstrak aksara tertentu daripada rentetan ke subrentetan pada penghujungnya Jun 22, 2023 pm 05:33 PM

Ungkapan biasa ialah alat pemprosesan teks yang berkuasa yang boleh digunakan untuk memadankan rentetan dalam corak tertentu. Dalam PHP, ungkapan biasa biasanya digunakan dalam pemprosesan rentetan, pengesahan borang, carian dan penggantian, dsb. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengekstrak aksara tertentu daripada rentetan ke subrentetan pada penghujungnya. Pertama, mari kita lihat contoh. Katakan kami mempunyai rentetan $str yang mengandungi berbilang URL bermula dengan "http://" dan kami ingin mengekstrak URL ini dan menyimpannya dalam

Pertanyaan subrentetan palindromik dalam C++ Pertanyaan subrentetan palindromik dalam C++ Sep 22, 2023 am 09:05 AM

Dalam tutorial ini, kita perlu menyelesaikan pertanyaan subrentetan palindrom untuk rentetan tertentu. Menyelesaikan pertanyaan subrentetan palindrom adalah lebih kompleks daripada menyelesaikan pertanyaan biasa dalam C++. Ia memerlukan kod dan logik yang lebih kompleks. Dalam tutorial ini, kami telah menyediakan pertanyaan string str dan Q substring [L...R], setiap satunya mempunyai dua nilai L dan R. Matlamat kami adalah untuk menulis atur cara yang menyelesaikan pertanyaan untuk menentukan sama ada subrentetan[L...R] ialah palindrom. Kita perlu menentukan sama ada subrentetan yang terbentuk dalam julat L hingga R adalah palindrom untuk menyelesaikan setiap pertanyaan. Contohnya-Mari masukkan"abbbabaaaba"asourinputstring.Thequer

PHP mengembalikan rentetan dari kedudukan mula ke kedudukan akhir rentetan dalam rentetan lain PHP mengembalikan rentetan dari kedudukan mula ke kedudukan akhir rentetan dalam rentetan lain Mar 21, 2024 am 10:31 AM

Artikel ini akan menerangkan secara terperinci bagaimana PHP mengembalikan rentetan dari kedudukan mula ke kedudukan akhir rentetan dalam rentetan lain Editor berpendapat ia agak praktikal, jadi saya berkongsi dengan anda sebagai rujukan artikel ini. Anda boleh memperoleh sesuatu daripada artikel ini. Gunakan fungsi substr() dalam PHP untuk mengekstrak subrentetan daripada rentetan Fungsi substr() boleh mengekstrak aksara dalam julat tertentu daripada rentetan. Sintaksnya adalah seperti berikut: substr(rentetan,mula,panjang) di mana: rentetan: rentetan asal dari mana subrentetan itu akan diekstrak. mula: Indeks kedudukan permulaan subrentetan (bermula dari 0). panjang (pilihan): Panjang subrentetan. Jika tidak dinyatakan, maka

Program Python: Tukar kedudukan elemen pertama dan terakhir dalam matriks antara lajur Program Python: Tukar kedudukan elemen pertama dan terakhir dalam matriks antara lajur Sep 08, 2023 pm 04:29 PM

Matriks ialah susunan nombor dua dimensi yang disusun dalam baris dan lajur. Python tidak mempunyai sebarang jenis data untuk mewakili matriks, tetapi kita boleh menggunakan senarai bersarang atau tatasusunan NumPy sebagai matriks. Lihat senario input dan output berikut untuk melihat cara menukar elemen lajur pertama dan terakhir matriks. Senario Input-Output Katakan kita mempunyai matriks 3X3 yang diwakili menggunakan senarai senarai. Matriks keluaran akan menjadi matriks yang terhasil daripada menukar elemen lajur pertama dan terakhir. Inputmatrix:[1,3,4][4,5,6][7,8,3]Outputmatrix:[4,3,1][4,5,6][3,8,7]Mari kita pertimbangkan yang lain Matriks yang baris dan lajurnya tidak sama. Inputmatriks:

See all articles