


Menyemak sama ada rentetan boleh dipecahkan kepada tiga subrentetan, di mana satu subrentetan ialah subrentetan daripada dua subrentetan yang lain
Dalam masalah ini, kita perlu membelah rentetan yang diberikan supaya subrentetan ketiga boleh menjadi subrentetan daripada dua substring pertama.
Mari kita fikirkan penyelesaiannya. Rentetan ketiga boleh menjadi subrentetan daripada dua rentetan pertama hanya jika dua rentetan pertama mengandungi semua aksara rentetan ketiga. Jadi, kita perlu mencari sekurang-kurangnya satu aksara dengan kekerapan lebih daripada 3 dalam rentetan yang diberikan, dan kita boleh mengambil subrentetan ketiga bagi aksara tunggal itu.
Pernyataan Masalah - Kami diberi rentetan str yang mengandungi N aksara abjad huruf kecil. Kita perlu menyemak sama ada kita boleh membahagikan rentetan kepada tiga subrentetan a, b dan c supaya subrentetan c ialah subrentetan a dan b. Cetak "ya" atau "tidak" bergantung pada sama ada 3 subrentetan boleh ditemui.
Contoh
Input – str = "tutorialsPoint"
Output – ‘Yes’
Arahan
Di sini kita boleh membahagikan rentetan kepada "tu", "torialsPoin" dan "t". Oleh itu, rentetan ketiga ialah subrentetan daripada dua rentetan pertama.
Input – str = "tutorials"
Output – ‘No’
Arahan
Kami tidak boleh membahagikan rentetan kepada tiga subrentetan berdasarkan keadaan yang diberikan kerana kekerapan sebarang aksara tidak melebihi 3.
Input – str = "hhhhhhhh"
Output – ‘Yes’
Arahan
Mengikut syarat yang diberikan, tiga substring boleh menjadi 'h', 'h' dan 'hhhhhh'.
Kaedah 1
Dalam kaedah ini, kami akan menggunakan tatasusunan untuk menyimpan kekerapan setiap aksara. Selepas itu, kami akan menyemak aksara dengan kekerapan lebih besar daripada atau sama dengan 3.
Algoritma
Langkah 1 - Tentukan tatasusunan "freq" dengan panjang bersamaan dengan 26.
Langkah 2 - Gelung melalui rentetan untuk mengira kekerapan aksara. Dalam gelung for, naikkan nilai freq[str[i] – ‘a’]. Di sini, str[i] – ‘a’ memberikan indeks antara 0 dan 26.
Langkah 3 - Sekarang, gelung melalui tatasusunan "freq" dan kembalikan benar jika nilai pada mana-mana indeks tatasusunan lebih besar daripada "3".
Langkah 4 - Kembalikan benar apabila gelung ditamatkan.
Langkah 5 - Cetak "Ya" atau "Tidak" berdasarkan nilai pulangan fungsi isSUbStringPossible().
Contoh
#include <bits/stdc++.h> using namespace std; // function to Check if a string can be split into 3 substrings such that one of them is a substring of the other two string isSubStringPossible(string str, int len){ // array to store the frequency int freq[26] = {0}; // Iterate over the string for (int i = 0; i < len; i++){ // count the frequency of each character freq[str[i] - 'a']++; } // Traverse the frequency array for (int i = 0; i < 26; i++){ // If the frequency of any character is greater than or equal to 3, then return "Yes." if (freq[i] >= 3){ return "Yes"; } } // Otherwise return "No"; } int main(){ string str = "tutorialsPoint"; int len = str.length(); cout << "The given string can be splited into 3 substrings such that one of them is a substring of the other two - " << isSubStringPossible(str, len); return 0; }
Output
The given string can be splited into 3 substrings such that one of them is a substring of the other two - Yes
Kerumitan masa - O(N), apabila kita mengulangi rentetan.
Kerumitan ruang - O(1) kerana kami menggunakan tatasusunan panjang tetap.
Kaedah 2
Dalam kaedah ini, kita mula-mula menukar rentetan kepada tatasusunan aksara. Selepas itu, kami menggunakan kaedah count() untuk mengira kekerapan aksara tertentu dalam tatasusunan.
Algoritma
Langkah 1 - Buat tatasusunan saiz "len + 1", dengan "len" ialah panjang rentetan.
Langkah 2 - Salin rentetan ke dalam tatasusunan char menggunakan kaedah strcpy().
Langkah 3 - Gunakan gelung for untuk sejumlah 26 lelaran.
Langkah 4 - Dalam gelung for, gunakan kaedah count() untuk mengira bilangan kejadian bagi aksara tertentu.
Kaedah Langkah 5 - Kembalikan benar jika kaedah kiraan() mengembalikan lebih besar daripada atau sama dengan 3.
Langkah 6 - Kembalikan palsu apabila gelung ditamatkan.
count() mengambil rujukan kepada kedudukan permulaan sebagai argumen pertama, rujukan kepada kedudukan penamat sebagai argumen kedua dan aksara sebagai argumen ketiga.
Di sini, kita perlu lulus nilai ASCII aksara sebagai parameter dan kita menggunakan I + 'a' untuk mendapatkan nilai.
Contoh
#include <bits/stdc++.h> using namespace std; // function to Check if a string can be split into 3 substrings such that one of them is a substring of the other two string isSubStringPossible(string str, int len){ // converting str to char array. char char_array[len + 1]; // copy string to char array strcpy(char_array, str.c_str()); // make 26 iterations for (int i = 0; i < 26; i++){ // Using count() to count the occurrence of each character in the array, and return 'yes' if any character occurs more than 2 times. if (count(char_array, char_array + len, i + 'a') >= 2) return "YES"; } return "NO"; } int main(){ string str = "tutorials"; int len = str.length(); cout << "The given string can be splited into 3 substrings such that one of them is a substring of the other two - " << isSubStringPossible(str, len); return 0; }
Output
The given string can be splited into 3 substrings such that one of them is a substring of the other two - Yes
Kerumitan masa - O(N) kerana kaedah count() berulang ke atas tatasusunan aksara untuk mengira bilangan aksara. Juga, kaedah strcpy() mengambil masa O(N).
Kerumitan ruang - O(N) kerana kami menyimpan rentetan ke dalam tatasusunan aksara.
Kesimpulan
Kami mempelajari dua cara untuk membahagikan rentetan kepada tiga subrentetan supaya satu subrentetan boleh menjadi subrentetan dua subrentetan lain. Kod kaedah kedua lebih mudah dibaca dan mesra pemula, tetapi ia lebih mahal dari segi masa dan ruang.
Atas ialah kandungan terperinci Menyemak sama ada rentetan boleh dipecahkan kepada tiga subrentetan, di mana satu subrentetan ialah subrentetan daripada dua subrentetan yang lain. 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



Program yang dilaksanakan dipanggil proses. Proses boleh menjadi aplikasi yang berjalan pada sistem pengendalian semasa atau aplikasi yang berkaitan dengan sistem pengendalian. Jika aplikasi terikat pada sistem pengendalian, ia mula-mula mencipta proses untuk melaksanakan sendiri. Aplikasi lain bergantung pada perkhidmatan sistem pengendalian untuk pelaksanaan. Kebanyakan aplikasi adalah perkhidmatan sistem pengendalian dan aplikasi latar belakang yang mengekalkan sistem pengendalian, perisian dan perkakasan. Dalam python kita mempunyai kaedah yang berbeza untuk menyemak sama ada aplikasi dibuka atau tidak. Mari belajar tentang mereka secara terperinci satu demi satu. Menggunakan fungsi psutil.process_iter() psutil ialah modul dalam Python yang menyediakan pengguna antara muka untuk mendapatkan maklumat tentang proses yang sedang berjalan dan penggunaan sistem.
![Semak ejaan tidak berfungsi dalam Pasukan [Tetap]](https://img.php.cn/upload/article/000/887/227/170968741326618.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Kami telah mula menyedari bahawa kadangkala semakan ejaan berhenti berfungsi untuk Pasukan. Semakan ejaan ialah alat penting untuk komunikasi yang berkesan, dan sebarang serangan ke atasnya boleh menyebabkan gangguan yang besar kepada aliran kerja. Dalam artikel ini, kami akan meneroka sebab biasa mengapa semakan ejaan mungkin tidak berfungsi seperti yang diharapkan dan cara memulihkannya kepada keadaan sebelumnya. Jadi, jika semakan ejaan tidak berfungsi dalam Pasukan, ikuti penyelesaian yang dinyatakan dalam artikel ini. Mengapa semakan ejaan Microsoft tidak berfungsi? Mungkin terdapat beberapa sebab mengapa semakan ejaan Microsoft tidak berfungsi dengan betul. Sebab ini termasuk tetapan bahasa yang tidak serasi, fungsi semakan ejaan yang dilumpuhkan, pemasangan MSTeam atau MSOffice yang rosak, dsb. Juga, MSTeams dan MSOf yang ketinggalan zaman

Objek boleh lelar ialah objek yang semua elemennya boleh diulang menggunakan gelung atau fungsi boleh lelar. Senarai, rentetan, kamus, tupel, dsb. semuanya dipanggil objek boleh lelar. Dalam bahasa Python, terdapat pelbagai cara untuk menyemak sama ada sesuatu objek boleh lelaran. Mari kita lihat satu persatu. Menggunakan Gelung Dalam Python, kita mempunyai dua teknik gelung, satu menggunakan gelung "untuk" dan satu lagi menggunakan gelung "semasa". Menggunakan salah satu daripada dua gelung ini, kita boleh menyemak sama ada objek yang diberikan boleh lelaran. Contoh Dalam contoh ini, kami akan cuba melelarkan objek menggunakan gelung "untuk" dan menyemak sama ada ia diulang atau tidak. Di bawah ialah kod. l=["epal",22,"orang

Cara menggunakan fungsi LOCATE dalam MySQL untuk mencari kedudukan substring dalam rentetan Dalam MySQL, terdapat banyak fungsi yang boleh digunakan untuk memproses rentetan. Antaranya, fungsi LOCATE adalah fungsi yang sangat berguna yang boleh digunakan untuk mencari kedudukan substring dalam rentetan. Sintaks fungsi LOCATE adalah seperti berikut: LOCATE(subrentetan, rentetan,[kedudukan]) dengan subrentetan ialah subrentetan untuk ditemui dan rentetan ialah subrentetan untuk ditemui.

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";

Bagaimana untuk menyemak status kesihatan SSD dalam Windows 11? Untuk kelajuan membaca, menulis dan mengakses yang pantas, SSD menggantikan HDD dengan pantas, tetapi walaupun ia lebih dipercayai, anda masih perlu menyemak kesihatan SSD anda dalam Windows 11. Bagaimana untuk mengendalikannya? Dalam tutorial ini, editor akan berkongsi dengan anda kaedah tersebut. Kaedah 1: Gunakan WMIC1, gunakan kombinasi kekunci Win+R, taip wmic, dan kemudian tekan atau klik OK. Masukkan2. Sekarang, taip atau tampal arahan berikut untuk menyemak status kesihatan SSD: diskdrivegetstatus Jika anda menerima mesej "Status: OK", pemacu SSD anda beroperasi seperti biasa.

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**

Anda boleh menggunakan kaedah contains() antara muka Senarai untuk menyemak sama ada objek wujud dalam senarai. contains() method booleancontains(Objecto) Mengembalikan benar jika senarai ini mengandungi elemen yang ditentukan. Secara lebih formal, mengembalikan benar jika dan hanya jika senarai ini mengandungi sekurang-kurangnya satu elemen e sedemikian (o==null?e==null:o.equals(e)). Parameter c - elemen yang kehadirannya dalam senarai ini akan diuji. Nilai Pulangan Mengembalikan benar jika senarai ini mengandungi elemen yang ditentukan. Membuang ClassCastException - jika jenis elemen yang ditentukan tidak serasi dengan senarai ini (pilihan). NullP
