


Hitung tiga subrentetan tidak bertindih dan gabungkannya untuk membentuk palindrom
Pengenalan
Dalam tutorial ini, kami akan menghuraikan kaedah untuk mencari tiga subrentetan tidak bertindih daripada rentetan s tertentu, dan apabila semua subrentetan digabungkan bersama, ia membentuk palindrom. Untuk menyelesaikan tugasan ini, kami menggunakan fungsi kelas rentetan bahasa pengaturcaraan C++.
Palindrom dalam rentetan bermakna rentetan membaca sama dalam kedua-dua arah ke hadapan dan ke belakang. Contoh rentetan palindrom ialah Puan.
Andaikan terdapat rentetan "s", dan subrentetan ialah a, b, c. Apabila anda menggabungkan a, b, dan c, ia membentuk rentetan palindrom. Ini adalah contoh memahami logik masalah.
Penerangan ayat
String s = “abbacab” Acceptable substrings of length 3 are: “abb”, “bac”, and “bba”.
Apabila kita menggabungkan ketiga-tiga substring, rentetan yang terhasil ialah rentetan palindrom, iaitu abbbacbba.
Tatabahasa
Fungsisize() tergolong dalam kelas rentetan dan digunakan untuk mendapatkan saiz rentetan input dan panjang aksaranya.
string_name,size();
Algoritma
Dapatkan rentetan input.
Mulakan pembolehubah pembilang yang digunakan untuk menjejak bilangan subrentetan palindromik.
Gunakan 3 bersarang untuk gelung untuk menjana 3 kemungkinan subrentetan panjang yang ditentukan.
Gelung dalam pertama dimulakan daripada 0 kepada panjang rentetan - 3.
Gelung dalam kedua dimulakan kepada panjang rentetan - 2 daripada gelung dalam pertama + 1.
Gelung luar dimulakan daripada gelung kedua + 1 kepada panjang rentetan - 1.
Selepas mencari semua subrentetan, gabungkan mereka.
Semak sama ada palindrom subrentetan wujud dan jika ya, naikkan nilai pemboleh ubah pembilang.
Cetak nilai pemboleh ubah pembilang.
Contoh
Untuk melaksanakan algoritma di atas menggunakan C++, kami mengambil rentetan input dan menjana semua kemungkinan gabungan subrentetan dan mempertimbangkan subrentetan palindromik sahaja. Jika subrentetan sedemikian mungkin, pembolehubah pembilang akan dinaikkan. Cetak keputusan pembolehubah pembilang.
#include <bits/stdc++.h> using namespace std; // user defined function to check formed substrings are palindrome or not bool isStringPalin(int a, int b, int c, int d, int x, int y, string st){ int begin = a, stop = y; while (begin < stop) { if (st[begin] != st[stop]) return false; begin++; if (begin == b + 1) begin = c; stop--; if (stop == x - 1) stop = d; } return true; } // User defined function to count the number of useful substrings int countSubString(string st){ //Counting variable to count and return the number of substrings int ct = 0; int l = st.size(); //It is to select the first substring for (int a = 0; a < l - 2; a++) { for (int b = a; b < l - 2; b++){ // This loop selects the second useful substring for (int c = b + 1; c < l - 1; c++) { for (int d = c; d < l - 1; d++) { // this for loop will select the third substring for (int x = d + 1; x < l; x++) { for (int y = x; y < l; y++) { // If condition to check the selected substrings are forming palindrome or not if (isStringPalin(a, b, c, d, x, y, st)) { ct++; } } } } } } } // returning the count variable that stores the number of useful substrings return ct; } // Controlling code int main(){ string st = "abcab"; cout << "The possible number of substrings are: "<< countSubString(st); return 0; }
Output
The possible number of substrings are: 4
Kesimpulan
Kami membangunkan kaedah untuk mencari subrentetan sah yang membentuk palindrom. Untuk melaksanakan penyelesaian ini kami menggunakan gelung C++ dan jika keadaan. Untuk melaksanakan salah satu contoh menggunakan C++, kami menggunakan fungsi size() dan gelung bersarang. Gelung bersarang membantu mencari subrentetan dengan panjang yang berbeza dan fungsi size() mengembalikan saiz rentetan.
Atas ialah kandungan terperinci Hitung tiga subrentetan tidak bertindih dan gabungkannya untuk membentuk palindrom. 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

Pendaraban Matriks Umum (GEMM) ialah bahagian penting dalam banyak aplikasi dan algoritma, dan juga merupakan salah satu petunjuk penting untuk menilai prestasi perkakasan komputer. Penyelidikan mendalam dan pengoptimuman pelaksanaan GEMM boleh membantu kami lebih memahami pengkomputeran berprestasi tinggi dan hubungan antara perisian dan sistem perkakasan. Dalam sains komputer, pengoptimuman GEMM yang berkesan boleh meningkatkan kelajuan pengkomputeran dan menjimatkan sumber, yang penting untuk meningkatkan prestasi keseluruhan sistem komputer. Pemahaman yang mendalam tentang prinsip kerja dan kaedah pengoptimuman GEMM akan membantu kami menggunakan potensi perkakasan pengkomputeran moden dengan lebih baik dan menyediakan penyelesaian yang lebih cekap untuk pelbagai tugas pengkomputeran yang kompleks. Dengan mengoptimumkan prestasi GEMM

WORD adalah pemproses perkataan yang berkuasa Kita boleh menggunakan perkataan untuk mengedit pelbagai teks Dalam jadual Excel, kita telah menguasai kaedah pengiraan penambahan, penolakan dan penggandaan Jadi jika kita perlu mengira penambahan nilai dalam jadual Word. Bagaimana untuk menolak pengganda? Bolehkah saya hanya menggunakan kalkulator untuk mengiranya? Jawapannya sudah tentu tidak, WORD juga boleh melakukannya. Hari ini saya akan mengajar anda cara menggunakan formula untuk mengira operasi asas seperti penambahan, penolakan, pendaraban dan pembahagian dalam jadual dalam dokumen Word. Jadi, hari ini izinkan saya menunjukkan secara terperinci cara mengira penambahan, penolakan, pendaraban dan pembahagian dalam dokumen WORD? Langkah 1: Buka WORD, klik [Jadual] di bawah [Sisipkan] pada bar alat dan masukkan jadual dalam menu lungsur.

Cara menggunakan fungsi count() Python untuk mengira bilangan elemen dalam senarai memerlukan contoh kod khusus Sebagai bahasa pengaturcaraan yang berkuasa dan mudah dipelajari, Python menyediakan banyak fungsi terbina dalam untuk mengendalikan struktur data yang berbeza. Salah satunya ialah fungsi count(), yang boleh digunakan untuk mengira bilangan elemen dalam senarai. Dalam artikel ini, kami akan menerangkan cara menggunakan fungsi count() secara terperinci dan memberikan contoh kod khusus. Fungsi count() ialah fungsi terbina dalam Python, digunakan untuk mengira sesuatu

Dalam C#, terdapat perpustakaan kelas Matematik, yang mengandungi banyak fungsi matematik. Ini termasuk fungsi Math.Pow, yang mengira kuasa, yang boleh membantu kita mengira kuasa nombor tertentu. Penggunaan fungsi Math.Pow adalah sangat mudah, anda hanya perlu menentukan asas dan eksponen. Sintaksnya adalah seperti berikut: Math.Pow(base,exponent); dengan asas mewakili asas dan eksponen mewakili eksponen. Fungsi ini mengembalikan hasil jenis berganda, iaitu hasil pengiraan kuasa. Jom

Diberi dua rentetan str_1 dan str_2. Matlamatnya adalah untuk mengira bilangan kejadian subrentetan str2 dalam rentetan str1 menggunakan prosedur rekursif. Fungsi rekursif ialah fungsi yang memanggil dirinya dalam definisinya. Jika str1 ialah "Iknowthatyouknowthatiknow" dan str2 ialah "tahu" bilangan kejadian ialah -3 Mari kita fahami melalui contoh. Contohnya, input str1="TPisTPareTPamTP", str2="TP";

Fungsi ini serupa dengan fungsi strtok(). Satu-satunya perbezaan utama ialah _r, yang dipanggil fungsi reentrant. Fungsi reentrant ialah fungsi yang boleh diganggu semasa pelaksanaan. Fungsi jenis ini boleh digunakan untuk menyambung semula pelaksanaan. Oleh itu, fungsi reentrant adalah thread-safe, yang bermaksud ia boleh diganggu dengan selamat oleh thread tanpa menyebabkan sebarang kerosakan. Fungsi strtok_r() mempunyai parameter tambahan yang dipanggil konteks. Dengan cara ini fungsi boleh dipulihkan di lokasi yang betul. Sintaks fungsi strtok_r() adalah seperti berikut: #include<string.h>char*strtok_r(char*string,constchar*limiter,char**

Pengenalan Program Java untuk mengira luas segi tiga menggunakan penentu adalah program ringkas dan cekap yang boleh mengira luas segitiga diberi koordinat tiga bucu. Program ini berguna untuk sesiapa sahaja yang belajar atau bekerja dengan geometri, kerana ia menunjukkan cara menggunakan pengiraan aritmetik dan algebra asas dalam Java, serta cara menggunakan kelas Pengimbas untuk membaca input pengguna. Program ini menggesa pengguna untuk koordinat tiga titik segi tiga, yang kemudiannya dibaca dan digunakan untuk mengira penentu matriks koordinat. Gunakan nilai mutlak penentu untuk memastikan kawasan sentiasa positif, kemudian gunakan formula untuk mengira luas segi tiga dan memaparkannya kepada pengguna. Program ini boleh diubah suai dengan mudah untuk menerima input dalam format yang berbeza atau untuk melakukan pengiraan tambahan, menjadikannya alat serba boleh untuk pengiraan geometri. pangkat penentu

Kami akan menunjukkan cara mengira jumlah skor dan peratusan menggunakan program Java. Jumlah skor merujuk kepada jumlah semua skor yang ada, manakala istilah peratusan merujuk kepada skor yang dikira dibahagikan dengan jumlah skor dan didarab dengan nombor yang terhasil 100. peratusan_markah=(markah_dapat/jumlah_markah)×100 Contoh 1 Ini ialah program Java yang menunjukkan cara mengira jumlah markah dan peratusan. //JavaProgramtodemonstratehowisTotalmarksandPercentagescalculatedimportjava.io.*;publicclassTotalMarks_
