Jadual Kandungan
Mari kita lihat pelbagai senario input dan output:
Kaedah yang digunakan dalam atur cara di bawah adalah seperti berikut
Contoh
Output
Rumah pembangunan bahagian belakang C++ Susun semula aksara dalam rentetan supaya mana-mana dua aksara bersebelahan berbeza, dilaksanakan dalam C++

Susun semula aksara dalam rentetan supaya mana-mana dua aksara bersebelahan berbeza, dilaksanakan dalam C++

Aug 26, 2023 pm 10:37 PM
susun semula Susunan rentetan Watak bersebelahan tidak sama

Susun semula aksara dalam rentetan supaya mana-mana dua aksara bersebelahan berbeza, dilaksanakan dalam C++

Kami diberi rentetan, andaikan ia adalah str, panjangnya boleh menjadi apa-apa nilai. Tugasnya adalah untuk menyusun semula rentetan yang diberikan supaya aksara bersebelahan yang sama tidak berbaris bersama dalam rentetan yang terhasil.

Mari kita lihat pelbagai senario input dan output:

Input − String str = "itinn"

Output − Susun semula aksara dalam rentetan supaya dua aksara yang bersebelahan, hasilnya tidak sama. initn.

Penjelasan − Kami diberi pembolehubah jenis rentetan, dengan mengandaikan ia adalah str. Sekarang kita akan menyusun semula aksara rentetan input supaya tiada dua aksara yang sama muncul dalam kedudukan yang sama, iaitu alihkan 'nn' ke kedudukan bukan bersebelahan. Jadi keputusan akhir ialah Rentetan itu akan menjadi 'initn'.

Input − String str = "abbaabbaa"

Output − Aksara dalam rentetan itu disusun semula supaya aksara bersebelahan berbeza: ababababa

diberikan Webabababa pembolehubah jenis rentetan, dengan mengandaikan ia adalah str. Sekarang kita akan menyusun semula aksara rentetan input supaya tiada dua aksara yang sama muncul dalam kedudukan yang sama iaitu gerakkan 'bb', 'aa', 'bb', 'aa' kerana ia adalah sama dan bersebelahan . Jadi rentetan terakhir akan menjadi 'ababababa'.

Kaedah yang digunakan dalam atur cara di bawah adalah seperti berikut

  • Masukkan pembolehubah jenis rentetan, dengan mengandaikan ia adalah str, dan hitung saiz rentetan dan simpannya dalam pembolehubah bernama panjang.

  • Periksa sama ada panjang adalah 0, kemudian kembali.

  • Hantar data ke fungsi Susunan Semula(str, panjang).

  • Di dalam fungsi Penyusunan Semula(arr, panjang)

    • menetapkan saiz rentetan kepada (panjang + 1)/2.

    • Isytiharkan pembolehubah jenis vektor vec(26, 0), yang akan menyimpan data jenis integer dan penunjuk jenis rentetan ptr(panjang, ‘ ‘). Juga mengisytiharkan temp pembolehubah sementara, jenis integer dan nilai 0.

    • Mulakan gelung UNTUK untuk lelaran str. Di dalam gelung, tetapkan vec[it - ‘a’]++.

    • Buat pembolehubah jenis aksara ch dan tetapkannya kepada hasil panggilan fungsi maksimum(vec).

    • Isytiharkan jumlah pembolehubah jenis integer dan tetapkannya kepada vec[ch - ‘a’].

    • Periksa jika jumlah lebih besar daripada saiz kemudian kembalikan.

    • Mulakan gelung WHILE jumlah, kemudian tetapkan ptr[temp] kepada ch, tetapkan suhu kepada suhu + 2 dan turunkan jumlah sebanyak 1.

    • Tetapkan vec[ch - 'a'] kepada 0. Mulakan gelung FOR dari i ke 0 sehingga i kurang daripada 26. Di dalam gelung, mulakan gelung while, apabila vec[i] lebih besar daripada 0, tetapkan temp kepada (temp >= length) 1: temp, set ptr[temp] kepada 'a' + i, set temp to temp + 2, dan susut vec[i] sebanyak 1.

    • Kembalikan ptr

  • Di dalam fungsi char maximum(const vector& vec)

    • isytihar pembolehubah jenis integer 0 dan tetapkan a kepada ubah jenis integer c. dan tetapkan a kepada ubah jenis integer c.

    • Mulakan gelung FOR dari i ke 0 sehingga i kurang daripada 26. Di dalam gelung, semak sama ada vec[i] kurang daripada tinggi, kemudian tetapkan tinggi kepada vec[i] dan c kepada 'a' + i.

    • Kembali ke c

  • Cetak hasil.

Contoh

#include <bits/stdc++.h>
using namespace std;
char maximum(const vector<int>& vec){
   int high = 0;
   char c;
   for(int i = 0; i < 26; i++){
      if(vec[i] > high){
         high = vec[i];
         c = &#39;a&#39; + i;
      }
   }
   return c;
}
string Rearrangement(string str, int length){
   int size = (length + 1) / 2;
   vector<int> vec(26, 0);
   string ptr(length, &#39; &#39;);
   int temp = 0;
   for(auto it : str){
      vec[it - &#39;a&#39;]++;
   }
   char ch = maximum(vec);
   int total = vec[ch - &#39;a&#39;];
   if(total > size){
      return "";
   }
   while(total){
      ptr[temp] = ch;
      temp = temp + 2;
      total--;
   }
   vec[ch - &#39;a&#39;] = 0;
   for(int i = 0; i < 26; i++){
      while (vec[i] > 0){
         temp = (temp >= length) ? 1 : temp;
         ptr[temp] = &#39;a&#39; + i;
         temp = temp + 2;
         vec[i]--;
      }
   }
   return ptr;
}
int main(){
   string str = "itinn";
   int length = str.length();
   if(length == 0){
      cout<<"Please enter a valid string";
   }
   string count = Rearrangement(str, length);
   if(count == ""){
      cout<<"Please enter a valid string";
   }
   else{
      cout<<"Rearrangement of characters in a string such that no two adjacent are same is: "<<count;
   }
   return 0;
}
Salin selepas log masuk

Output

Jika kita menjalankan kod di atas, output berikut akan dihasilkan

Rearrangement of characters in a string such that no two adjacent are same is: initn
Salin selepas log masuk

Atas ialah kandungan terperinci Susun semula aksara dalam rentetan supaya mana-mana dua aksara bersebelahan berbeza, dilaksanakan dalam C++. 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)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan 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)

Ubah suai rentetan dengan menyusun semula vokal mengikut kedudukan indeksnya dalam rentetan Ubah suai rentetan dengan menyusun semula vokal mengikut kedudukan indeksnya dalam rentetan Sep 06, 2023 pm 06:53 PM

Dalam artikel ini, kita akan membincangkan cara mengubah suai rentetan yang diberikan dalam C++ dengan menyusun semula huruf vokal mengikut abjad pada indeks masing-masing. Kami juga akan menerangkan kaedah yang digunakan untuk menyelesaikan masalah ini dan memberikan contoh dengan kes ujian. Pernyataan Masalah Diberi rentetan, susun semula vokal pada indeks masing-masing mengikut susunan abjad. Konsonan dalam rentetan harus mengekalkan susunan asalnya. Sebagai contoh, memandangkan rentetan "tutorialspoint", output mestilah "tatiriolspount". Kaedah Masalah ini boleh diselesaikan menggunakan algoritma mudah. Mula-mula kita boleh mencipta rentetan berasingan yang mengandungi semua vokal dalam rentetan yang diberikan dalam susunan masing-masing. Kemudian kita boleh mengisih rentetan itu mengikut abjad. akhirnya,

Menyemak sama ada sebarang pilihatur rentetan tertentu secara leksikografi lebih besar daripada rentetan lain yang diberikan Menyemak sama ada sebarang pilihatur rentetan tertentu secara leksikografi lebih besar daripada rentetan lain yang diberikan Sep 22, 2023 am 08:41 AM

Kami telah diberi dua rentetan dan perlu menyemak sama ada pilih atur rentetan yang diberikan wujud supaya satu pilihatur boleh mempunyai aksara yang lebih besar daripada pilih atur lain pada indeks ke-i. Kita boleh menyelesaikan masalah dengan mengisih rentetan dan membandingkan setiap aksara dalam rentetan satu demi satu. Sebagai alternatif, kita boleh menggunakan frekuensi aksara bagi dua rentetan untuk menyelesaikan masalah. Pernyataan Masalah - Kami diberi rentetan str1 dan str2 panjang N. Kita perlu menyemak sama ada terdapat sebarang pilihatur rentetan supaya satu lebih besar dari segi leksikografi daripada yang lain. Ini bermakna bahawa sebarang pilih atur harus mempunyai aksara pada indeks ke-i yang lebih besar daripada aksara pada indeks ke-i bagi pilihatur rentetan yang lain. Contoh input -str1=&quot

Susun rentetan supaya bilangan aksara di dalamnya lebih besar daripada bilangan aksara bersebelahan. Susun rentetan supaya bilangan aksara di dalamnya lebih besar daripada bilangan aksara bersebelahan. Sep 24, 2023 am 11:09 AM

Memanipulasi rentetan adalah penting dalam pelbagai senario penyelesaian masalah. Pilih atur rentetan yang diberikan didapati mengoptimumkan bilangan aksara yang lebih besar daripada bilangan aksara bersebelahan Ini adalah teka-teki yang menarik yang memerlukan penyusunan semula aksara rentetan untuk menjana sebanyak mungkin pasangan aksara bersebelahan, di mana aksara pada. kiri lebih kecil daripada aksara di sebelah kanan . Kaedah Terdapat beberapa cara untuk menyelesaikan pilih atur rentetan di mana bilangan maksimum aksara adalah lebih besar daripada bilangan aksara yang bersebelahan langsung dengannya. Kaedah 1-Kaedah Penjejakan Belakang dan Pemangkasan 2-Kaedah Pengaturcaraan Dinamik 3-Kaedah Algoritma Timbunan 4- Susunan Kamus dengan Pemangkasan-Kaedah 1: Penjejakan Belakang dan Pemangkasan Gunakan algoritma penjejakan ke belakang untuk menjana semua pilih atur rentetan. Pada setiap langkah, semak sama ada susunan semasa mempunyai lebih banyak aksara daripada jirannya yang lebih besar daripada maksimum yang ditemui setakat ini. Jika tidak, cantas awal

Susun semula aksara dalam rentetan supaya mana-mana dua aksara bersebelahan berbeza, dilaksanakan dalam C++ Susun semula aksara dalam rentetan supaya mana-mana dua aksara bersebelahan berbeza, dilaksanakan dalam C++ Aug 26, 2023 pm 10:37 PM

Kami diberi rentetan, katakan str, panjangnya boleh menjadi sebarang nilai. Tugasnya adalah untuk menyusun semula rentetan yang diberikan supaya aksara bersebelahan yang sama tidak berbaris bersama dalam rentetan yang terhasil. Mari kita lihat pelbagai senario input dan output: input - string str="itinn" output - susun semula aksara dalam rentetan supaya dua aksara bersebelahan berbeza, hasilnya: initn. Penjelasan −Kami diberi pembolehubah jenis rentetan, dengan mengandaikan ia adalah str. Sekarang kita akan menyusun semula aksara rentetan input sedemikian rupa

Susun semula aksara untuk membentuk palindrom (jika boleh) dalam C++ Susun semula aksara untuk membentuk palindrom (jika boleh) dalam C++ Sep 09, 2023 pm 03:57 PM

Kami diberi rentetan 'str' dari mana-mana panjang tertentu. Tugasnya adalah untuk menyusun semula aksara supaya output menjadi rentetan palindrom tanpa menambah atau mengalih keluar aksara daripada rentetan input yang diberikan. Rentetan palindrom ialah apabila aksara disusun sedemikian rupa sehingga bunyinya sama dari awal hingga akhir. Mari kita lihat pelbagai senario input dan output untuk ini - Input - String str="itnin" Output - Penyusunan semula aksara untuk membentuk rentetan palindrom jika boleh ialah: nitin Penjelasan - Kami diberi pembolehubah jenis rentetan , diandaikan sebagai str. Sekarang kita akan menyusun semula aksara rentetan input supaya ia menjadi

Susun semula tatasusunan supaya jumlah hasil pasangan unsur berturut-turut adalah minimum, ditulis dalam C++ Susun semula tatasusunan supaya jumlah hasil pasangan unsur berturut-turut adalah minimum, ditulis dalam C++ Aug 26, 2023 am 10:57 AM

Kami mempunyai tatasusunan jenis integer positif, katakan arr[], dalam sebarang saiz. Tugasnya adalah untuk menyusun semula tatasusunan supaya apabila kita mendarab unsur dengan unsur bersebelahan dan kemudian menambah semua elemen yang terhasil, jumlah terkecil dikembalikan. Mari kita lihat situasi input dan output yang berbeza: Input -intarr[]={2,5,1,7,5,0,1,0} Output -Susun semula tatasusunan untuk meminimumkan jumlah, yang merupakan hasil darab pasangan berturut-turut unsur Penjelasan untuk: 70505121 - Kami mempunyai tatasusunan integer bersaiz 8. Sekarang, kami akan menyusun semula tatasusunan, iaitu 70505121. Kami akan menyemak sama ada jumlah minimum dikembalikan iaitu 7*0+5*0+5

Bagaimana untuk menyusun semula program dalam menu mula dalam sistem win10 Bagaimana untuk menyusun semula program dalam menu mula dalam sistem win10 Jul 18, 2023 am 10:17 AM

Bagaimana untuk menyusun semula program dalam menu permulaan sistem win10? Ramai rakan mungkin tidak tahu banyak tentangnya Jika anda tidak tahu bagaimana untuk menyusun semula, editor di bawah telah menyusun kaedah tetapan untuk menyusun semula program dalam menu permulaan sistem win10 Jika anda berminat. Ikuti editor dan lihat di bawah! ! Cara menyusun semula program dalam menu mula dalam sistem win10 1. Kemas kini sistem kepada versi win1010156 untuk menggunakan fungsi ini 2. Klik ikon menu mula, dan kemudian klik [Semua Apl] 3. Masukkan semua program dalam menu mula , dan kemudian klik ikon [&] di bahagian atas, supaya anda boleh memasuki tempat di mana anda menetapkan susunan isihan 4. Pilih huruf awal atau

Susun semula dan kemas kini elemen tatasusunan mengikut pertanyaan yang diberikan Susun semula dan kemas kini elemen tatasusunan mengikut pertanyaan yang diberikan Sep 14, 2023 pm 04:29 PM

Dalam soalan ini, kami akan melaksanakan pertanyaan yang diberikan pada elemen tatasusunan. Pertanyaan mengandungi gelung putaran kiri, putaran kanan dan kemas kini elemen tatasusunan. Bahagian logik untuk menyelesaikan masalah ialah putaran tatasusunan. Cara mudah untuk memutar tatasusunan ke kiri ialah menggantikan setiap elemen dengan elemen seterusnya dan elemen terakhir dengan elemen pertama. Kita boleh menggunakan struktur data deque untuk memutar tatasusunan dengan cekap. Pernyataan Masalah - Kami diberi tatasusunan arr[] yang mengandungi nilai integer. Selain itu, kami diberi tatasusunan permintaan[] yang mengandungi pertanyaan K. Kita perlu melaksanakan setiap pertanyaan yang diberikan dalam permintaan[] pada elemen tatasusunan arr[] mengikut peraturan berikut. {0} - Melakukan putaran kiri bulat pada tatasusunan. {1)-Bulatkan tatasusunan

See all articles