Tujuan artikel ini adalah untuk melaksanakan program untuk menyahkod rentetan yang diberikan dengan mengalih keluar aksara berulang.
Seperti yang anda ketahui apa itu rentetan, rentetan hanyalah koleksi aksara. Selain itu, tiada had kepada bilangan kali aksara boleh diulang dalam rentetan. Watak yang sama boleh muncul beberapa kali dalam rentetan. Dalam artikel ini, kita akan mencari cara untuk menyahkod str rentetan yang dikodkan dengan mengalih keluar kejadian pendua.
Matlamatnya adalah untuk menyahkod rentetan str yang disediakan, yang telah diproses dengan satu kejadian 'a', dua kejadian 'b', tiga kejadian 'c' dan empat kejadian 'd', sehingga ke 26 kejadian pengekodan 'z'.
Atur cara untuk menyahkod rentetan yang diberikan dengan mengalih keluar kejadian pendua.
NOTA − Jangan abaikan ruang yang mungkin disertakan dalam surat.
Let us take the input string str = “abbbb accc”
The output obtained is: abb ac
Setiap huruf ditulis mengikut bilangan kali ia muncul dalam abjad Inggeris. Rentetan yang terhasil ialah "abb acc" kerana huruf b diulang empat kali. Huruf a diulang dua kali, dan akhirnya huruf c diulang tiga kali.
Juga dalam kes ini, ruang tidak diabaikan.
Let us take the input string str = “ddddadddd”
The output obtained is: dad
Setiap huruf ditulis mengikut bilangan kali ia muncul dalam abjad Inggeris. Rentetan yang terhasil ialah "ayah" kerana huruf d diulang lapan kali dan huruf terakhir a muncul sekali sahaja.
Dalam kes ini, tiada ruang antara aksara.
Let us take the input string str = “abbccc”
The output obtained is: abc
Setiap huruf ditulis dengan mengambil kira bilangan kali ia muncul dalam abjad Inggeris. Rentetan yang terhasil ialah "abc" kerana huruf a muncul sekali sahaja. Huruf b diulang dua kali dan akhirnya huruf c diulang tiga kali.
Dalam kes ini, tiada ruang antara aksara.
Untuk menyahkod rentetan yang diberikan dengan mengalih keluar aksara berulang, kami menggunakan kaedah berikut dalam artikel ini.
Kaedah untuk menyelesaikan masalah ini dan menyahkod rentetan yang diberikan dengan mengalih keluar kejadian pendua adalah berdasarkan mengulang rentetan.
Iaitu, masalah di atas boleh diselesaikan dengan mengulangi rentetan str dan menolak setiap aksara ke dalam rentetan keluaran, kemudian bergerak ke hadapan mengikut kedudukan itu untuk mencari aksara seterusnya.
Diberikan di bawah ialah algoritma untuk mencetak bilangan aksara camelCase yang terdapat dalam rentetan yang diberikan
Untuk menyelesaikan masalah ini, sila ikut arahan yang disenaraikan di bawah -
Langkah pertama − Mulakan
Langkah 2 - Tentukan Rentetan
Langkah 3 - Buat pembolehubah dipanggil hasil dengan nilai awal rentetan kosong untuk menyimpan rentetan output.
Langkah 4 - Cipta fungsi findOccurences(char a1) dan lakukan operasi seterusnya -
Langkah 5 - Jika nilai a1 jatuh antara a dan z, kembalikan nilai a1 sebagai "a". Jika julat nilai a1 tidak berada dalam julat A hingga Z, maka nilai a1 dikembalikan sebagai "Z". Jika tidak, 0 dikembalikan.
Langkah 6 - Tentukan fungsi nyahkodTheString(rentetan s) untuk menyahkod rentetan s
Langkah 7 - Selepas melengkapkan peringkat di atas, cetak hasil rentetan sebagai rentetan akhir.
Langkah 8 − Berhenti
Ini ialah program C++ yang melaksanakan algoritma yang ditulis di atas untuk menyahkod rentetan yang diberikan dengan mengalih keluar aksara berulang
// C++ program for our above algorithm #include <bits/stdc++.h> using namespace std; // Function to count the number of occurences of each character int findOccurences(char a1){ // If the character is a lower case , that is [a-z] if (a1 <= 'z' && a1 >= 'a') { return a1 - 'a'; } // If the character is an uppercase, that is [A-Z] else if (a1 <= 'Z' && a1 >= 'A') { return a1 - 'A'; } // If the character is something else like a punctuation mark then return 0; } // Function used for decoding the given string str void decodeTheString(string s){ string result = ""; // Iterate through the provided string str for (int i = 0; i < s.length(); i++) { result.push_back(s[i]); // Find the index i of the next characterto be printed i += findOccurences(s[i]); } cout << "The decoded string: " << result << endl; } int main(){ string s = "aaabbbb"; cout << "Input string: "<< s << endl; decodeTheString(s); return 0; }
Input string: aaabbbb The decoded string: aaabb
Begitu juga, kita boleh menyahkod mana-mana rentetan yang diberikan dengan mengalih keluar kejadian pendua daripadanya.
Artikel ini menyelesaikan cabaran menyahkod mana-mana rentetan tertentu dengan mengalih keluar kejadian penduanya. Disediakan di sini ialah kod pengaturcaraan C++ bersama-sama dengan algoritma untuk menyahkod rentetan yang diberikan dengan mengalih keluar pendua mana-mana rentetan yang diberikan.
Atas ialah kandungan terperinci Nyahkod rentetan yang diberikan dengan mengalih keluar aksara berulang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!