


Tukar rentetan kepada bentuk yang mempunyai abcd..z sebagai urutan
Penukaran rentetan (juga dikenali sebagai penukaran rentetan) ialah operasi dalam C++ yang menyimpan hasil dalam tatasusunan output selepas keseluruhan proses dilaksanakan. Dalam C++, terdapat fungsi yang dipanggil "transform()", yang wujud dalam direktori persekitaran C++, yang melaluinya kita boleh menukar rentetan menjadi rentetan baharu.
Terdapat dua bentuk fungsi penukaran −
Pembedahan tanpa sengaja
digunakan pada setiap elemen tatasusunan input.
Selepas operasi selesai, keputusan akan disimpan dalam tatasusunan keluaran.
-
Operasi
Operasi binari
Operasi digunakan pada setiap elemen tatasusunan tertentu.
Elemen input pertama dan elemen input kedua yang sepadan mengambil bahagian dalam operasi.
Data output akan disimpan dalam tatasusunan output.
Rentetan susulan ialah rentetan baharu yang dijana dengan melakukan pelbagai operasi pada rentetan input (cth. pemadaman). Untuk rentetan seterusnya, operasi berlaku tanpa menjejaskan aksara yang tinggal.
Untuk penukaran rentetan, input mengandungi rentetan operasi dengan panjang n+1. Watak asal tergolong dalam siri a hingga z. Panjang rentetan cetakan dianggap sebagai n di sini, yang merupakan rentetan keluaran.
Dalam artikel ini, kita akan belajar cara menukar rentetan kepada abcd….z sebagai urutan dalam persekitaran C++.
Algoritma rekursif menjana rentetan seterusnya
Dengan menggunakan pendekatan rekursif, di bawah ialah algoritma yang mungkin untuk rentetan seterusnya. Ini adalah rentetan tertentu dan T ialah masa yang diperlukan untuk menyelesaikan operasi.
Langkah 1 - Kira bilangan kejadian.
Langkah 2 - Jika i = panjang(s) dan j = panjang(T).
Langkah 3− Kemudian kembali ke 1.
Langkah 4 - Penamat.
Langkah 5 - Jika i = panjang(S).
Langkah 6 - Kemudian kembalikan 0.
Langkah 7 - Penamat.
Langkah 8 − Kira
Langkah 9 - Jika, j
Langkah 10 − Kira
Langkah 11 - Penamat.
Langkah 12 - Kira
Langkah 13 - Kiraan Pulangan.
Langkah 14 - Penamat.
Sintaks untuk tatasusunan seterusnya
Here, we have two given sequences. X and Y. Initialize a table with a dimension of X.length * Y.length X.label1 = X Y.label2 = Y CS1[0][] = 0 CS2[][0] = 0 Start from CS[1][1] Compare X[i] and Y[j] If X[i] = Y[j] CS[i][j] = 1 + CS[i-1, j-1] Point an arrow to CS[i][j] Else CS[i][j] = max(CS[i-1][j], CS[i][j-1]) Point an arrow to max(CS[i-1][j], CS[i][j-1])
Di sini kami mencipta sintaks kerja asas untuk tatasusunan seterusnya. Apabila terdapat dua urutan, kita perlu mengikuti langkah berikut untuk mendapatkan output.
Cara mengikuti
Kaedah 1−Tukar rentetan menggunakan C++
Kaedah 2 melaksanakan operasi unari pada rentetan menggunakan C++
Kaedah 3 menggunakan C++ untuk melaksanakan operasi binari pada rentetan
Cetak semua kemungkinan rentetan berikutnya menggunakan C++
Kaedah 5 untuk menukar rentetan kepada mempunyai abcd….z sebagai susulan menggunakan C++
Tukar rentetan menggunakan C++
Dalam kod C++ ini, kami mencipta rentetan baharu dan mengalih keluar semua vokal daripada rentetan input. # ditambah sebagai ganti vokal ini.
Contoh 1
#include <bits/stdc++.h> using namespace std; string change_case(string r) { int l = r.length(); for(int i = 0 ; i < l ; i++) { if(r[i] >= 'a' && r[i] <= 'z') r[i] = r[i] - 32; else if(r[i] >= 'A' && r[i] <= 'Z') r[i] = r[i] + 32; } return r; } string delete_vowels(string a) { string temp = ""; int l = a.length(); for(int i = 0 ; i < l ; i++) { if(a[i] != 'a' && a[i] != 'e' && a[i] != 'i' && a[i] != 'o' && a[i] != 'u' && a[i] != 'A' && a[i] != 'E' && a[i] != 'O' && a[i] != 'U'&& a[i] != 'I') temp += a[i]; } return temp; } string insert_hash(string a) { string temp = ""; int l = a.length(); for(int i = 0 ; i < l ; i++) { if((a[i] >= 'a' && a[i] <= 'z') || (a[i] >= 'A' && a[i] <= 'Z')) temp = temp + '#' + a[i]; else temp = temp + a[i]; } return temp; } void transformSting(string a) { string b = delete_vowels(a); string c = change_case(b); string d = insert_hash(c); if(d=="") cout<<"-1"<<endl; else cout << d<<endl; } int main() { string a = "RudraDevDas!!"; string b = "aeiou"; transformSting(a); transformSting(b); return 0; }
Output
#r#D#R#d#V#d#S!! -1
Gunakan C++ untuk melakukan operasi unari pada rentetan
Dalam kod khusus ini, kami menunjukkan cara melaksanakan operasi unari pada tatasusunan input. Fungsi ini menerima penunjuk ke kedudukan mula dan akhir satu input. Dan beroperasi pada permulaan tatasusunan output.
Terjemahan bahasa Cina bagiContoh 2
ialah:Contoh 2
#include <iostream> #include <algorithm> using namespace std; int op_increment (int x) { x = x + 1; return x; } int main () { int n = 5; int input_array[] = {7, 16, 10, 97, 2001}; int output_array[n]; std::cout << "Input array present here:"; for(int i=0; i<5; i++){ cout << ' ' << input_array[i]; } cout << '\n'; transform (input_array, input_array+5, output_array, op_increment); std::cout << "The output array now contains with:"; for(int i=0; i<5; i++){ cout << ' ' << output_array[i]; } cout << '\n'; return 0; }
Output
Input array present here: 7 16 10 97 2001 The output array now contains with: 8 17 11 98 2002
Gunakan C++ untuk melakukan operasi binari pada rentetan
Dalam kod khusus ini, kami menunjukkan cara melaksanakan operasi binari pada tatasusunan input. Fungsi transform() menambah penunjuk antara titik permulaan dan tatasusunan input pertama. Ingat bahawa operasi binari sentiasa beroperasi pada dua set data input.
Terjemahan bahasa Cina bagiContoh 3
ialah:Contoh 3
#include <iostream> #include <algorithm> #include <vector> using namespace std; int op_add (int i, int j) { return i+j; } int main () { int n = 5; int arr1[] = {7, 16, 10, 2001, 1997}; int arr2[] = {1, 2, 3, 4, 5}; int output[n]; std::cout << "Input data in array1:"; for(int i=0; i<n; i++){ cout << ' ' << arr1[i]; } cout << '\n'; std::cout << "Input data in array2:"; for(int i=0; i<n; i++){ cout << ' ' << arr2[i]; } cout << '\n'; std::transform (arr1, arr1+n, arr2, output, op_add); std::cout << "Output array is here now:"; for(int i=0; i<5; i++){ cout << ' ' << output[i]; } cout << '\n'; return 0; }
Output
Input data in array1: 7 16 10 2001 1997 Input data in array2: 1 2 3 4 5 Output array is here now: 8 18 13 2005 2002
Cetak semua rentetan seterusnya menggunakan C++
Gunakan konsep pemilihan dan bukan pemilihan untuk mengetahui semua urutan tatasusunan tertentu. Semasa proses ini, beberapa aksara boleh dialih keluar tanpa mengubah susunan unsur. Di sini, kerumitan masa proses ini ialah O(2^n) dan kerumitan ruang ialah O(n).
Contoh 4
#include <bits/stdc++.h> using namespace std; void printSubsequence(string input, string output) { if (input.empty()) { cout << output << endl; return; } printSubsequence(input.substr(1), output + input[0]); printSubsequence(input.substr(1), output); } int main() { string output = ""; string input = "rudraabonikoaa"; printSubsequence(input, output); return 0; }
Output
rudraabonikoaa rudraabonikoa rudraabonikoa rudraaboniko rudraabonikaa rudraabonika rudraabonika rudraabonik rudraabonioaa rudraabonioa rudraabonioa rudraabonio rudraaboniaa rudraabonia rudraabonia
Tukar rentetan kepada abcd…z sebagai urutan
Ini adalah proses khusus untuk menukar rentetan kepada bentuk yang mempunyai abcd...z sebagai urutan.
Watak permulaan.
Jika panjang kurang daripada 26, kembalikan palsu.
Lelaran gelung daripada 0 kepada s.size() - 1.
Jika aksara mencapai z, keluar dari gelung.
Jika watak semasa kurang daripada s atau sama dengan watak.
Ganti kenaikan watak semasa dengan 1.
Mengembalikan palsu jika aksara kurang daripada atau sama dengan z.
Jika tidak, kembalikan benar.
在这个过程中,时间复杂度为O(n),辅助空间为O(1)。这里,n是特定字符串的长度。
Example 5
的中文翻译为:示例5
#include <bits/stdc++.h> using namespace std; bool transformString(string& s) { char ch = 'a'; if (s.size() < 26) return false; for (int i = 0; i < s.size(); i++) { if (int(ch) > int('z')) break; if (s[i] <= ch) { s[i] = ch; ch = char(int(ch) + 1); } } if (ch <= 'z') return false; return true; } int main() { string str = "aaaaaaaaaaaaaaaaaaaaaaaaaaa"; if (transformString(str)) cout << str << endl; else cout << "Not Possible" << endl; return 0; }
输出
abcdefghijklmnopqrstuvwxyza
结论
在本文中,我们学习了使用C++环境进行字符串转换及其不同形式。通过遵循特定的算法和语法,我们检查和构建了一些不同的C++代码,并了解了如何转换字符串,使其具有abcd...z作为子序列。
Atas ialah kandungan terperinci Tukar rentetan kepada bentuk yang mempunyai abcd..z sebagai urutan. 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

AI Hentai Generator
Menjana ai hentai secara percuma.

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



Cara menukar rentetan kepada nilai Boolean menggunakan kaedah parseBoolean() kelas Boolean Dalam pengaturcaraan Java, anda sering menghadapi situasi di mana anda perlu menukar rentetan kepada nilai Boolean. Kelas Boolean di Java menyediakan kaedah yang sangat mudah - parseBoolean(), yang boleh menukar rentetan kepada nilai Boolean yang sepadan. Artikel ini akan memperkenalkan penggunaan kaedah ini secara terperinci dan memberikan contoh kod yang sepadan. Pertama, kita perlu memahami kaedah parseBoolean().

Belajar untuk menukar rentetan kepada tatasusunan dalam bahasa Go Penukaran antara rentetan dan tatasusunan ialah operasi biasa dalam bahasa Go, terutamanya apabila memproses data, anda sering menghadapi keperluan untuk menukar rentetan kepada tatasusunan. Artikel ini akan memperkenalkan cara cepat belajar menukar rentetan kepada tatasusunan dalam bahasa Go, supaya anda boleh menangani masalah yang serupa dengan mudah. Dalam bahasa Go, kita boleh menggunakan fungsi Split yang disediakan oleh pakej rentetan untuk memisahkan rentetan kepada tatasusunan mengikut pembatas yang ditentukan. Berikut ialah a

Tukar rentetan kepada nombor titik terapung berketepatan dua menggunakan fungsi Double.parseDouble() Java Dalam pengaturcaraan Java, kita selalunya perlu menukar rentetan kepada jenis angka. Untuk nombor titik terapung berketepatan dua, Java menyediakan kaedah yang sangat mudah, fungsi Double.parseDouble(). Artikel ini akan memperkenalkan penggunaan fungsi ini dan melampirkan beberapa kod sampel untuk membantu pembaca memahami dan menggunakan fungsi ini dengan lebih baik. Fungsi Double.parseDouble() ialah

Kaedah append() kelas StringBuilder menerima nilai String dan menambahkannya pada objek semasa. Tukar nilai rentetan kepada objek StringBuilder - Dapatkan nilai rentetan. Tambah menggunakan kaedah append() untuk mendapatkan rentetan ke StringBuilder. Contoh Dalam program Java berikut, kami menukar tatasusunan rentetan menjadi objek StringBuilder tunggal. Demonstrasi masa nyata publicclassStringToStringBuilder{ publicstaticvoidmain(Stringargs[]){&a

Tajuk: Gunakan PHP untuk menukar rentetan kepada perenambelasan dan mencapai output terbalik Dalam pembangunan harian, kadangkala kita perlu menukar rentetan kepada perwakilan perenambelasan untuk penghantaran atau penyulitan data. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menukar rentetan kepada perenambelasan dan merealisasikan fungsi output terbalik. Pertama, kita perlu menulis fungsi PHP untuk menukar rentetan kepada perenambelasan. Berikut ialah contoh kod: functionstringToHex($string)

Tukar rentetan kepada huruf kecil menggunakan fungsi PHP "strtolower" Dalam PHP, terdapat banyak fungsi yang boleh digunakan untuk menukar kes rentetan. Salah satu fungsi yang paling biasa digunakan ialah strtolower(). Fungsi ini menukar semua aksara dalam rentetan kepada huruf kecil. Berikut ialah contoh kod ringkas yang menunjukkan cara menggunakan fungsi strtolower() untuk menukar rentetan kepada huruf kecil: <?php//rentetan asal $string="

Cara menukar rentetan kepada huruf besar menggunakan fungsi upper() Python, contoh kod khusus yang diperlukan Python ialah bahasa pengaturcaraan yang mudah dan mudah dipelajari yang menyediakan banyak fungsi terbina dalam untuk mengendalikan rentetan. Salah satu fungsi yang biasa digunakan ialah fungsi upper(), yang menukarkan semua huruf dalam rentetan kepada huruf besar. Artikel ini akan memperkenalkan secara terperinci cara menggunakan fungsi upper() Python dan memberikan contoh kod yang sepadan. Mula-mula, mari kita fahami penggunaan fungsi upper(). naik

Gunakan fungsi strconv.ParseInt untuk menukar rentetan kepada integer dalam pangkalan yang ditentukan Walaupun pakej strconv dalam bahasa Go menyediakan banyak fungsi untuk penukaran jenis, kadangkala kita masih memerlukan penukaran jenis tersuai. Apabila kita perlu menukar rentetan kepada integer dalam pangkalan yang ditentukan, kita boleh menggunakan fungsi strconv.ParseInt untuk melengkapkannya. Parameter fungsi strconv.ParseInt termasuk rentetan yang akan ditukar, asas yang ditentukan dan bilangan digit dalam integer yang terhasil. ia mengembalikan penukaran
