


Menyemak sama ada rentetan yang diberikan hanya boleh dibahagikan kepada urutan ABC
Satu urutan rentetan ialah sebahagian daripada rentetan di mana aksara boleh diambil dari mana-mana kedudukan (sifar atau lebih elemen) rentetan tanpa mengubah aksara dan membentuk rentetan baru. Dalam masalah ini, kita diberi rentetan panjang N di mana setiap aksara rentetan itu sama ada aksara 'A', 'B' atau 'C'. Tugas kami adalah untuk mencari bahawa rentetan hanya boleh dibahagikan kepada urutan "ABC" atau "Tidak". Mengembalikan "ya" jika rentetan hanya dibahagikan kepada "ABC" yang berikutnya, jika tidak, mengembalikan "tidak".
Input 1: str = “AABCBC” Output 1: yes
Arahan - Kaedah membelah adalah dengan membelah rentetan kepada 2 urutan "ABC", seperti berikut -
Salah satu kaedah yang mungkin adalah untuk membentuk urutan "ABC" dengan mengambil aksara dengan indeks 0, 2, dan 3, dan kemudian membentuk jujukan "ABC" dengan mengambil aksara dengan indeks 1, 4, dan 5 ABC".
Satu lagi cara yang mungkin ialah membentuk "ABC" berikutnya dengan mendapatkan aksara pada indeks 0, 4, 5 dan 1, 2, 3.
Oleh itu, rentetan boleh dibahagikan kepada 2 urutan "ABC".
Input 2: str = “AABBBACCC” Output 2: no
Penjelasan - Untuk 'A' yang terdapat pada indeks nombor 5, tiada 'B' selepasnya. Oleh itu, keseluruhan rentetan tidak boleh dibahagikan kepada "ABC" urutan unik. Oleh itu, jawapannya ialah "tidak".
Kaedah 1: Gunakan Hashmap
Kami mempunyai dua pemerhatian seperti berikut -
Saiz rentetan hendaklah dibahagikan dengan 3 kerana kita perlu membahagikan rentetan itu kepada "ABC" dan bilangan aksara 'A', 'B' dan 'C' hendaklah sama. Jika tidak, kita tidak boleh memenuhi syarat.
Apabila kita mengira kekerapan aksara "A", "B" dan "C", kiraan "A" mestilah lebih besar daripada atau sama dengan kiraan "B" dan kiraan "B" mestilah lebih besar daripada atau sama dengan kiraan 'C'. Kerana kiraan A >= kiraan B >= kiraan C
Berdasarkan pemerhatian di atas, kami mempunyai tiga syarat untuk diperiksa.
Dijangka saiz rentetan % 3 == 0.
hendaklah kiraan A >= kiraan B >= kiraan C.
Syarat terakhir hendaklah freq[ ‘A’ ] == freq[ ‘B’ ] == freq[ ‘C’ ] .
Kita boleh menggunakan peta cincang untuk menyelesaikan masalah ini kerana kita perlu menyimpan kekerapan setiap aksara dalam rentetan "str" yang diberikan.
Mari kita bincangkan kaedah berikut langkah demi langkah -
Pertama kita akan mencipta fungsi yang dipanggil "checkSubsequences" yang akan mengambil rentetan "str" sebagai parameter dan mengembalikan rentetan yang diperlukan jika boleh" ya", jika tidak "tidak" dikembalikan sebagai nilai pulangan.
Dalam fungsi, semua langkah diberikan di bawah -
Buat pembolehubah "len" untuk menyimpan panjang rentetan.
Semak syarat pertama dan kembalikan 'tidak' jika panjangnya tidak dibahagikan dengan 3.
Buat peta cincang untuk menyimpan frekuensi aksara 'A', 'B' dan 'C'. Oleh itu, kerumitan ruang adalah malar.
Gunakan gelung for untuk melintasi rentetan daripada 0 kepada kurang daripada len.
Tingkatkan kiraan aksara semasa dalam rentetan
Semak syarat kedua dan kembalikan "Tidak" jika kiraan "A" kurang daripada kiraan "B" atau kiraan "B" kurang daripada kiraan "C".
li>
Selepas gelung for, kita perlu menyemak syarat ketiga terakhir dan kembalikan "Tidak" jika kiraan A tidak sama dengan kiraan B atau kiraan B tidak sama dengan kiraan C.
Akhir sekali, apabila semua syarat dipenuhi, balas "ya".
Contoh
#include <bits/stdc++.h> using namespace std; // function to check subsequences of "ABC" string checkSubsequences( string str ){ int len = str.size(); //getting length of the string str // check first condition if( len%3 != 0 ) { return "no"; } map< char, int >freq; //store the count of character 'A', 'B' and 'C' for( int i=0; i<len; i++){ freq[ str[i] ]++; // increase the count of the character //chech second condition if(freq[ 'A' ] < freq[ 'B' ] || freq[ 'B' ] < freq[ 'C' ]){ return "no"; } } //check third condition if(freq[ 'A' ] != freq[ 'B' ] || freq[ 'B' ] != freq[ 'C' ]){ return "no"; } // it is possible to split string only into subsequences of "ABC" return "yes"; } // main function int main(){ string str = "ABAAABCBC";// given string // calling the function 'checkSubsequences' to check is it possible to split // string into subsequences of "ABC" string result = checkSubsequences( str ); if( result == "yes" ){ cout<< result << ", the string is splited only into the subsequences of ABC"; } else { cout<< result << ", the string is not splited only into the subsequences of ABC."; } return 0; }
Output
no, the string is not splited only into the subsequences of ABC.
Kerumitan Masa dan Ruang
Kerumitan masa kod di atas ialah O(N) kerana kita melintasi rentetan. di mana N ialah saiz rentetan.
Kerumitan ruang kod di atas ialah O(1) kerana kami menyimpan kekerapan nombor, yang saiznya adalah malar 3.
KESIMPULAN
Dalam tutorial ini, kami melaksanakan program untuk menyemak sama ada rentetan yang diberikan hanya boleh dibahagikan kepada urutan ABC. Kami melaksanakan kaedah pencincangan kerana kami perlu menyimpan frekuensi. Dalam kaedah ini, kami terutamanya menyemak tiga syarat, jika semua syarat dipenuhi, ini bermakna kami hanya boleh membahagikan rentetan ke dalam urutan "ABC".
Atas ialah kandungan terperinci Menyemak sama ada rentetan yang diberikan hanya boleh dibahagikan kepada urutan ABC. 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.

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
![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

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.

Bagaimana untuk menyemak sama ada rentetan bermula dengan aksara tertentu dalam Golang? Apabila pengaturcaraan di Golang, anda sering menghadapi situasi di mana anda perlu menyemak sama ada rentetan bermula dengan aksara tertentu. Untuk memenuhi keperluan ini, kita boleh menggunakan fungsi yang disediakan oleh pakej rentetan di Golang untuk mencapainya. Seterusnya, kami akan memperkenalkan secara terperinci cara menggunakan Golang untuk menyemak sama ada rentetan bermula dengan aksara tertentu, dengan contoh kod tertentu. Di Golang, kita boleh menggunakan HasPrefix daripada pakej rentetan

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

Sila pertimbangkan jadual di bawah untuk mengetahui kriteria kelayakan syarikat yang berbeza - Terjemahan Cina CGPA ialah: GPA Lebih Besar atau Sama dengan 8 Syarikat Yang Layak Google, Microsoft, Amazon, Dell, Intel, Wipro Greater atau Sama dengan 7 Mata Tutorial, Accenture, Infosys , Emicon, Rellins lebih besar daripada atau sama dengan 6rtCamp, Cybertech, Skybags, Killer, Raymond lebih besar daripada atau sama dengan 5Patronics, Shoes, NoBrokers Marilah kita memasuki program java untuk menyemak kelayakan pelajar tpp untuk temu duga. Kaedah 1: Menggunakan keadaan ifelseif Biasanya apabila kita perlu menyemak beberapa syarat yang kita gunakan

Tahun lompat mempunyai 366 hari, manakala tahun biasa mempunyai 365 hari Tugasnya adalah untuk menyemak sama ada tahun tertentu adalah tahun lompat melalui program. Logik penghakiman boleh dilaksanakan dengan menyemak sama ada tahun itu boleh dibahagikan dengan 400 atau 4, tetapi jika ia tidak boleh dibahagikan dengan dua nombor ini, ia adalah tahun biasa. ContohInput-:year=2000Output-:2000isaLeapYearInput-:year=101Output-:101isnotaLeapyear algorithmStartStep1->declarefunctionbooltocheckifyearifaleapyearornotboolcheck(intye
