Kami diberi rentetan 'str' bagi 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.
Input - String str = "itnin"
Output - Jika boleh, penyusunan semula aksara untuk membentuk rentetan palitin
ialah: rentetan palitin- Kami diberi pembolehubah jenis rentetan, katakan str. Sekarang kita akan menyusun semula aksara rentetan input untuk menjadikannya rentetan palindrom jika tidak Ia akan kembali 'TIDAK BOLEH' jika boleh. Oleh itu, output yang diberikan rentetan input ialah 'nitin'. . Sekarang kita akan menyusun semula aksara rentetan input untuk menjadikannya rentetan palindrom dan kembalikan 'TIDAK MUNGKIN' jika ini tidak mungkin. Oleh itu, output yang diberikan rentetan input ialah 'aabbaa'.
Kaedah yang digunakan dalam atur cara di bawah adalah seperti berikutMasukkan pembolehubah jenis rentetan, dengan mengandaikan ia adalah str, dan hitung saiz rentetan dan simpannya dalam pembolehubah bernama panjang.
Hantar data ke fungsi Susunan Semula(str, panjang).
Di dalam fungsi Penyusunan Semula(arr, panjang)
#include <bits/stdc++.h> using namespace std; string Rearrangement(string str, int length){ unordered_map<char, int> um; int total = 0; char ch; string str_1 = ""; string str_2 = ""; for (int i = 0; i < length; i++){ um[str[i]]++; } for(auto it : um){ if(it.second % 2 != 0){ total++; ch = it.first; } } if(total > 1 || total == 1 && length % 2 == 0){ return 0; } for(auto it : um){ string str(it.second / 2, it.first); str_1 = str_1 + str; str_2 = str + str_2; } if(total == 1){ return str_1 + ch + str_2; } else{ return str_1 + str_2; } } int main(){ string str = "itnin"; int length = str.size(); cout<<"Rearrangement of characters to form palindrome if possible is: "<<Rearrangement(str, length); return 0; }
Rearrangement of characters to form palindrome if possible is: nitin
Atas ialah kandungan terperinci Susun semula aksara untuk membentuk palindrom (jika boleh) dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!