


Ubah suai ayat dengan membalikkan susunan semua perkataan palindrom muncul
Pernyataan Masalah
Kami diberi rentetan str yang mengandungi N perkataan secara keseluruhan. Kita perlu mencari semua perkataan palindrom dalam rentetan tertentu dan mencipta rentetan baharu dengan membalikkan susunan semua perkataan palindrom.
Contoh
Masuk
str = ‘nayan was gone to navjivan eye hospital’
Output
‘eye was gone to navjivan nayan hospital’
Arahan
Rentetan mengandungi tiga palindrom: nayan, navjivan dan mata. Kami membalikkan susunan ketiga-tiga perkataan dan mengekalkan semua perkataan lain sama.
Masuk
‘Hello, users! How are you?’
Output
‘Hello, users! How are you?’
Arahan
Ia memberikan output yang sama kerana rentetan tidak mengandungi sebarang perkataan palindrom.
Masuk
‘Your eye is beautiful.’
Output
‘Your eye is beautiful.’
Arahan
Ia memberikan output yang sama seperti rentetan yang mengandungi hanya satu perkataan palindrom.
Kaedah 1
Dalam kaedah ini, kami mula-mula membelah rentetan menjadi perkataan. Selepas itu, kami akan menapis semua perkataan palindrom. Seterusnya, kita membalikkan susunan semua palindrom.
Akhir sekali, kami mengulangi melalui rentetan dan jika perkataan semasa ialah perkataan palindrom, kami menggantikannya dengan perkataan palindrom lain dalam susunan terbalik.
Algoritma
Langkah 1 - Jalankan fungsi reversePlaindromic() dengan menghantar rentetan sebagai argumen yang mengembalikan rentetan hasil.
Langkah 2 - Cipta fungsi isPalindrome() untuk menyemak sama ada sesuatu perkataan ialah palindrom.
Langkah 2.1 - Mulakan "mula" kepada 0 dan "tamat" kepada panjang rentetan - 1.
Langkah 2.2 - Gunakan gelung sementara untuk melelaran melalui rentetan, membandingkan aksara pertama dan terakhir, membandingkan aksara kedua dan kedua terakhir, dan seterusnya. Jika mana-mana aksara tidak sepadan, palsu dikembalikan kerana ia bukan rentetan palindrom.
Langkah 2.3 - Mengembalikan benar jika rentetan ialah palindrom.
Langkah 3 - Buat vektor untuk menyimpan perkataan rentetan. Selain itu, tentukan pembolehubah "temp" untuk menyimpan perkataan.
Langkah 4 - Gunakan gelung for untuk lelaran pada rentetan dan tambahkan aksara pada nilai sementara jika ia tidak sama dengan ruang (‘ ’). Jika tidak, tolak nilai temp ke vektor allWords.
Langkah 5 - Ulangi pada vektor allWords dan semak sama ada perkataan semasa ialah palindrom menggunakan fungsi isPalindrome(). Jika ya, tolak perkataan itu ke dalam vektor "palindromWords".
Langkah 6 - Balikkan senarai "palindromWords".
Langkah 7 - Sekarang, ulangi vektor "allWords" sekali lagi dan semak sama ada perkataan semasa ialah palindrom. Jika ya, gantikannya dengan perkataan yang dihormati daripada senarai "palindromWords".
Langkah 8 - Ulangi senarai "palindromWords" dan buat rentetan dengan menambahkan semua perkataan pada pembolehubah hasil. Mengembalikan rentetan hasil.
Contoh
#include <iostream> #include <vector> #include <algorithm> using namespace std; // Function to check if a string is a palindrome bool isPalindrome(string str){ int start = 0; int end = str.length() - 1; // iterate till start < end while (start < end){ // check if the character at the start and end are not the same and return false, else increment start and decrement end if (str[start] != str[end]){ return false; } else { start++; end--; } } return true; } string reversePalindromic(string str) { // vectors to store all words and palindromic words vector<string> palindromWords; vector<string> allWords; // variable to store single word string temp = ""; for (char x : str) { // If the current character is not space, then append it to temp; else, add temp to palindrome words and make temp NULL if (x != ' ') { temp += x; } else { allWords.push_back(temp); temp = ""; } } // push the last word to all words allWords.push_back(temp); // fetch all palindromic words for (string x : allWords){ if (isPalindrome(x)){ // Update newlist palindromWords.push_back(x); } } // Reverse the vector reverse(palindromWords.begin(), palindromWords.end()); int k = 0; for (int i = 0; i < allWords.size(); i++){ // If the current word is a palindrome, push it to palindrome words if (isPalindrome(allWords[i])){ allWords[i] = palindromWords[k]; k++; } } string result = ""; for (string x : allWords) { result += x; result += " "; } return result; } int main(){ string str = "nayan was gone to navjivan eye hospital"; string reverse = reversePalindromic(str); cout << reverse << endl; return 0; }
Output
eye was gone to navjivan nayan hospital
Kerumitan masa - O(N) kerana kita mengulangi rentetan panjang N.
Kerumitan Ruang - O(K) kerana kami menggunakan senarai untuk menyimpan perkataan, di mana k ialah jumlah bilangan perkataan dalam rentetan.
Kesimpulan
Kami belajar mengambil semua perkataan palindrom daripada ayat dan menambahnya dalam susunan terbalik. Dalam kod di atas, pengaturcara boleh cuba menukar pelaksanaan fungsi isPalindrome() untuk mempelajari sesuatu yang baharu.
Atas ialah kandungan terperinci Ubah suai ayat dengan membalikkan susunan semua perkataan palindrom muncul. 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

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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

1. Mula-mula buka DingTalk. 2. Buka sembang kumpulan dan klik tiga titik di penjuru kanan sebelah atas. 3. Cari nama panggilan saya dalam kumpulan ini. 4. Klik untuk masuk untuk mengubah suai dan menyimpan.

Sesetengah permainan akan dipasang secara automatik ke dalam folder pengguna dan memerlukan folder Bahasa Inggeris Namun, ramai rakan tidak tahu cara menukar nama folder pengguna dalam win11. Ubah suai nama folder pengguna dalam win11: Langkah pertama ialah menekan kombinasi kekunci "Win+R" pada papan kekunci. Dalam langkah kedua, masukkan "gpedit.msc" dan tekan Enter untuk membuka Editor Dasar Kumpulan. Langkah 3: Kembangkan "Tetapan Keselamatan" di bawah "Tetapan Windows" Langkah 4: Buka "Pilihan Keselamatan" dalam "Dasar Tempatan" Langkah 5: Klik dua kali untuk membuka dasar "Akaun: Namakan Semula Akaun Pentadbir Sistem" di sebelah kanan. Langkah 6: Masukkan nama folder yang anda ingin ubah suai di bawah dan klik "OK" untuk menyimpan. Ubah suai folder pengguna

Pensijilan Douyin Blue V ialah pensijilan rasmi syarikat atau jenama pada platform Douyin, yang membantu meningkatkan imej dan kredibiliti jenama. Dengan pelarasan strategi pembangunan korporat atau kemas kini imej jenama, syarikat mungkin ingin menukar nama pensijilan Douyin Blue V. Jadi, bolehkah Douyin Blue V menukar namanya? Jawapannya ya. Artikel ini akan memperkenalkan secara terperinci langkah-langkah untuk mengubah suai nama akaun Douyin Blue V perusahaan. 1. Bolehkah Douyin Blue V menukar namanya? Anda boleh menukar nama akaun Douyin Blue V. Menurut peraturan rasmi Douyin, akaun diperakui Blue V korporat boleh memohon untuk menukar nama akaun mereka selepas memenuhi syarat tertentu. Secara umumnya, perusahaan perlu menyediakan bahan sokongan yang berkaitan, seperti lesen perniagaan, sijil kod organisasi, dll., untuk membuktikan kesahihan dan keperluan menukar nama. 2. Apakah langkah-langkah untuk mengubah suai nama akaun korporat Douyin Blue V?

Selepas mengemas kini sistem win11, ramai rakan mendapati tetingkap antara muka win11 menggunakan reka bentuk sudut bulat baharu. Tetapi sesetengah orang tidak menyukai reka bentuk sudut bulat ini dan mahu mengubah suainya kepada antara muka sebelumnya, tetapi mereka tidak tahu cara mengubah suainya. Mari lihat di bawah. Cara mengubah suai sudut bulat dalam win11 1. Reka bentuk sudut bulat win11 ialah tetapan sistem terbina dalam yang tidak boleh diubah suai pada masa ini. 2. Jadi jika anda tidak suka menggunakan reka bentuk sudut bulat win11, anda boleh menunggu untuk Microsoft menyediakan kaedah pengubahsuaian. 3. Jika anda benar-benar tidak biasa, anda juga boleh memilih untuk kembali ke sistem win10 sebelum ini. 4. Jika anda tidak tahu bagaimana untuk kembali, anda boleh menyemak tutorial yang disediakan di laman web ini. 5. Jika anda tidak boleh kembali menggunakan tutorial di atas, anda masih boleh

Untuk menguasai kemahiran mengubah suai warna latar belakang PyCharm dengan cepat, anda memerlukan contoh kod khusus Dalam beberapa tahun kebelakangan ini, bahasa Python telah menjadi semakin popular dalam bidang pembangunan program, dan PyCharm, sebagai persekitaran pembangunan bersepadu (IDE). , disukai dan digunakan oleh majoriti pembangun. Dalam PyCharm, sesetengah pembangun sering memperibadikan antara muka IDE, termasuk menukar warna latar belakang. Artikel ini akan memperkenalkan teknik mengubah suai warna latar belakang PyCharm dan memberikan contoh kod khusus untuk membantu pembaca menguasai kemahiran ini dengan cepat.

Petua Pengubahsuaian Masa Tidur Win10 Didedahkan Sebagai salah satu sistem pengendalian yang digunakan secara meluas pada masa ini, Windows 10 mempunyai fungsi tidur untuk membantu pengguna menjimatkan kuasa dan melindungi skrin apabila tidak menggunakan komputer. Walau bagaimanapun, kadangkala masa tidur lalai tidak memenuhi keperluan pengguna, jadi amat penting untuk mengetahui cara mengubah suai masa tidur Win10. Artikel ini akan mendedahkan petua untuk mengubah suai masa tidur Win10, membolehkan anda menyesuaikan tetapan tidur sistem dengan mudah. 1. Ubah suai masa tidur Win10 melalui "Tetapan" Pertama, pembetulan yang paling mudah

Dalam sistem win11, kami boleh mengurangkan penggunaan bateri kami atau meningkatkan prestasi sistem kami dengan mengubah suai mod kuasa. Kaedah tetapan adalah sangat mudah, cuma cari pilihan kuasa Mari ikut editor untuk melihat proses operasi tertentu. Cara menukar mod kuasa dalam win11 1. Mula-mula klik butang paling kiri pada bar tugas untuk membuka menu mula. 2. Kemudian cari dan buka "Panel Kawalan" di atas menu mula 3. Dalam panel kawalan, anda boleh menemui "Perkakasan dan Bunyi" 4. Masukkan Perkakasan dan Bunyi, klik "Pilih pelan kuasa" di bawah Pilihan Kuasa 5. Kemudian dalam Anda boleh mengubah suai mod kuasa Anda boleh memilih mod seimbang, penjimatan tenaga atau mengembangkan pelan tambahan tersembunyi dan memilih mod berprestasi tinggi.

Ia sangat mudah untuk mengubah suai warna bar tugas dalam Windows 10, tetapi ramai pengguna mendapati bahawa mereka tidak boleh menetapkannya, sebenarnya, ia adalah sangat mudah. perhatikan tetapan terperinci. Cara menukar warna bar tugas win10 Langkah 1: Klik kanan pada desktop - klik Peribadikan Langkah 2: Sesuaikan kawasan warna Langkah 3: Pilih warna kegemaran anda PS: Jika anda tidak boleh menukar warna, anda boleh klik Warna -> Pilih Warna -> Sesuaikan-> Mod tingkap lalai, pilih warna gelap.
