Jadual Kandungan
Pernyataan Masalah
Contoh
Masuk
Output
Arahan
Kaedah 1
Algoritma
Kesimpulan
Rumah pembangunan bahagian belakang C++ Ubah suai ayat dengan membalikkan susunan semua perkataan palindrom muncul

Ubah suai ayat dengan membalikkan susunan semua perkataan palindrom muncul

Aug 27, 2023 am 10:01 AM
Semak semula terbalik palindrom

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

Output

‘eye was gone to navjivan nayan hospital’
Salin selepas log masuk

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

Output

‘Hello, users! How are you?’
Salin selepas log masuk
Salin selepas log masuk

Arahan

Ia memberikan output yang sama kerana rentetan tidak mengandungi sebarang perkataan palindrom.

Masuk

‘Your eye is beautiful.’
Salin selepas log masuk
Salin selepas log masuk

Output

‘Your eye is beautiful.’
Salin selepas log masuk
Salin selepas log masuk

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

Output

eye was gone to navjivan nayan hospital
Salin selepas log masuk
  • 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!

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

Video Face Swap

Video Face Swap

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

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 menukar nama peribadi dalam kumpulan di DingTalk_Cara mengubah suai nama peribadi dalam kumpulan di DingTalk Cara menukar nama peribadi dalam kumpulan di DingTalk_Cara mengubah suai nama peribadi dalam kumpulan di DingTalk Mar 29, 2024 pm 08:41 PM

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.

Cara Menukar Nama Folder Pengguna: Tutorial Win11 Cara Menukar Nama Folder Pengguna: Tutorial Win11 Jan 09, 2024 am 10:34 AM

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

Bolehkah Douyin Blue V menukar namanya? Apakah langkah-langkah untuk menukar nama akaun korporat Douyin Blue V? Bolehkah Douyin Blue V menukar namanya? Apakah langkah-langkah untuk menukar nama akaun korporat Douyin Blue V? Mar 22, 2024 pm 12:51 PM

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?

Panduan untuk mengubah suai sudut tingkap win11 kepada sudut bulat Panduan untuk mengubah suai sudut tingkap win11 kepada sudut bulat Dec 31, 2023 pm 08:35 PM

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

Petua pelarasan warna latar belakang PyCharm: Kuasai dengan cepat! Petua pelarasan warna latar belakang PyCharm: Kuasai dengan cepat! Feb 03, 2024 am 09:39 AM

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 Petua pengubahsuaian masa tidur Win10 didedahkan Mar 08, 2024 pm 06:39 PM

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

Lokasi dan kaedah pengubahsuaian mod kuasa Win11 Lokasi dan kaedah pengubahsuaian mod kuasa Win11 Dec 30, 2023 pm 05:25 PM

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.

Bagaimana untuk menukar warna bar tugas Windows 10 Bagaimana untuk menukar warna bar tugas Windows 10 Jan 01, 2024 pm 09:05 PM

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.

See all articles