


Cari watak yang paling kerap berlaku selepas melakukan operasi tertentu
在本文中,我们将探讨在执行一组给定的操作后查找字符串中出现最多的字符的概念。这个问题经常出现在编程挑战和面试中,掌握解决方案有助于增强你的字符串操作和算法技能。我们将解释问题陈述,讨论所使用的算法,展示 C++ 实现,并提供测试用例示例来演示解决方案。
问题陈述
给定一个字符串 s 和一组操作,在执行所有操作后找到最大出现的字符。每个操作由一对(i, j)组成,代表我们要交换字符串中i和j位置的字符。
算法
创建一个频率数组来存储字符串中每个字符的出现次数。
迭代操作,交换指定位置的字符。
每次交换后更新频率数组。
迭代频率数组以查找出现次数最多的字符。
C++ 实现
示例
#include <iostream> #include <string> #include <vector> #include <algorithm> char maxOccurringChar(const std::string &s, const std::vector<std::pair<int, int>> &operations) { std::vector<int> frequency(26, 0); std::string modifiedString = s; // Initialize the frequency array with the original string's character occurrences for (char c : modifiedString) { frequency[c - 'a']++; } for (const auto &op : operations) { int i = op.first; int j = op.second; // Decrement the frequency of the characters being swapped frequency[modifiedString[i] - 'a']--; frequency[modifiedString[j] - 'a']--; // Perform the swap std::swap(modifiedString[i], modifiedString[j]); // Increment the frequency of the swapped characters frequency[modifiedString[i] - 'a']++; frequency[modifiedString[j] - 'a']++; } // Find the character with the maximum occurrence int maxFrequency = 0; char maxChar = 'a'; for (int i = 0; i < 26; i++) { if (frequency[i] > maxFrequency) { maxFrequency = frequency[i]; maxChar = 'a' + i; } } return maxChar; } int main() { std::string s = "aabcbdb"; std::vector<std::pair<int, int>> operations = { {1, 4}, {2, 5} }; char maxChar = maxOccurringChar(s, operations); std::cout << "The maximum occurring character after performing the operations is: " << maxChar << std::endl; return 0; }
输出
The maximum occurring character after performing the operations is: b
测试用例示例
让我们考虑以下示例 -
字符串:“aabcbdb”
操作:{ {1, 4}, {2, 5} }
执行第一个操作(1、4):“abacbdb”
执行第二个操作(2、5):“abcabdb”
执行操作后,字符串变为“abcabdb”。修改后的字符串中最多出现的字符是 'b',出现了 3 次。
结论
在本文中,我们探讨了在执行一组给定的操作后查找字符串中出现次数最多的字符的问题。我们讨论了该算法,提出了修正后的 C++ 实现,并提供了一个测试用例示例来演示该解决方案。掌握此类问题有助于增强您的字符串操作和算法技能,这对于编程挑战和面试至关重要。请记住根据需要仔细初始化和更新频率数组,以确保结果准确。
Atas ialah kandungan terperinci Cari watak yang paling kerap berlaku selepas melakukan operasi tertentu. 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

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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











PyCharm ialah persekitaran pembangunan bersepadu (IDE) Python yang sangat popular. Ia menyediakan pelbagai fungsi dan alatan untuk menjadikan pembangunan Python lebih cekap dan mudah. Artikel ini akan memperkenalkan anda kepada kaedah operasi asas PyCharm dan menyediakan contoh kod khusus untuk membantu pembaca memulakan dengan cepat dan menjadi mahir dalam mengendalikan alat tersebut. 1. Muat turun dan pasang PyCharm Pertama, kita perlu pergi ke laman web rasmi PyCharm (https://www.jetbrains.com/pyc

sudo (eksekusi superuser) ialah arahan utama dalam sistem Linux dan Unix yang membenarkan pengguna biasa menjalankan perintah tertentu dengan keistimewaan root. Fungsi sudo dicerminkan terutamanya dalam aspek berikut: Menyediakan kawalan kebenaran: sudo mencapai kawalan ketat ke atas sumber sistem dan operasi sensitif dengan membenarkan pengguna mendapatkan kebenaran superuser buat sementara waktu. Pengguna biasa hanya boleh mendapatkan keistimewaan sementara melalui sudo apabila diperlukan, dan tidak perlu log masuk sebagai pengguna super sepanjang masa. Keselamatan yang dipertingkatkan: Dengan menggunakan sudo, anda boleh mengelak daripada menggunakan akaun akar semasa operasi rutin. Menggunakan akaun akar untuk semua operasi boleh menyebabkan kerosakan sistem yang tidak dijangka, kerana sebarang operasi yang salah atau cuai akan mempunyai kebenaran penuh. dan

Mungkin ramai pengguna mempunyai beberapa komputer yang tidak digunakan di rumah, dan mereka telah lupa sepenuhnya kata laluan kuasa hidup kerana mereka tidak digunakan untuk masa yang lama, jadi mereka ingin tahu apa yang perlu dilakukan jika mereka terlupa kata laluan? Kemudian mari kita lihat bersama-sama. Apa yang perlu dilakukan jika anda terlupa menekan F2 untuk kata laluan boot win10 1. Tekan butang kuasa komputer, dan kemudian tekan F2 semasa but (jenama komputer yang berbeza mempunyai butang yang berbeza untuk memasuki BIOS). 2. Dalam antara muka bios, cari pilihan keselamatan (lokasi mungkin berbeza untuk jenama komputer yang berbeza). Biasanya dalam menu tetapan di bahagian atas. 3. Kemudian cari pilihan SupervisorPassword dan klik padanya. 4. Pada masa ini, pengguna boleh melihat kata laluannya, dan pada masa yang sama mencari Didayakan di sebelahnya dan menukarnya kepada Dis.

Langkah pengendalian dan langkah berjaga-jaga LinuxDeploy LinuxDeploy ialah alat berkuasa yang boleh membantu pengguna menggunakan pelbagai pengedaran Linux dengan pantas pada peranti Android, membolehkan pengguna mengalami sistem Linux yang lengkap pada peranti mudah alih mereka. Artikel ini akan memperkenalkan langkah pengendalian dan langkah berjaga-jaga LinuxDeploy secara terperinci dan memberikan contoh kod khusus untuk membantu pembaca menggunakan alat ini dengan lebih baik. Langkah-langkah operasi: Pasang LinuxDeploy: Pertama, pasang

Memaparkan aksara Cina dengan betul dalam matplotlib adalah masalah yang sering dihadapi oleh ramai pengguna Cina. Secara lalai, matplotlib menggunakan fon Inggeris dan tidak boleh memaparkan aksara Cina dengan betul. Untuk menyelesaikan masalah ini, kita perlu menetapkan fon Cina yang betul dan menggunakannya pada matplotlib. Di bawah ialah beberapa contoh kod khusus untuk membantu anda memaparkan aksara Cina dengan betul dalam matplotlib. Pertama, kita perlu mengimport perpustakaan yang diperlukan: importmatplot

Apple membawa beberapa ciri perkakasan eksklusif Pro kepada iPhone 15 Pro dan 15 Pro Max, yang menarik perhatian semua orang. Kami bercakap tentang bingkai titanium, reka bentuk anggun, cipset A17 Pro baharu, kanta telefoto 5x yang menarik dan banyak lagi. Daripada semua loceng dan wisel yang ditambahkan pada model iPhone 15 Pro, butang tindakan kekal sebagai ciri yang menonjol dan menonjol. Tidak perlu dikatakan, ia adalah tambahan yang berguna untuk melancarkan tindakan pada iPhone anda. Yang berkata, anda secara tidak sengaja boleh menahan butang Tindakan dan mencetuskan ciri secara tidak sengaja. Terus terang, ia menjengkelkan. Untuk mengelakkan ini, anda harus melumpuhkan butang tindakan pada iPhone 15 Pro dan 15 Pro Max. biarkan

Dengan populariti telefon pintar, fungsi tangkapan skrin telah menjadi salah satu kemahiran penting untuk kegunaan harian telefon bimbit. Sebagai salah satu telefon mudah alih utama Huawei, fungsi tangkapan skrin Huawei Mate60Pro secara semula jadi telah menarik banyak perhatian daripada pengguna. Hari ini, kami akan berkongsi langkah operasi tangkapan skrin telefon mudah alih Huawei Mate60Pro, supaya semua orang boleh mengambil tangkapan skrin dengan lebih mudah. Pertama sekali, telefon bimbit Huawei Mate60Pro menyediakan pelbagai kaedah tangkapan skrin, dan anda boleh memilih kaedah yang sesuai dengan anda mengikut tabiat peribadi anda. Berikut ialah pengenalan terperinci kepada beberapa pemintasan yang biasa digunakan:

Pemantauan tatal halaman web CSS: pantau acara tatal halaman web dan lakukan operasi yang sepadan Dengan pembangunan berterusan teknologi bahagian hadapan, kesan dan interaksi halaman web menjadi lebih kaya dan pelbagai. Antaranya, pemantauan skrol adalah teknologi biasa yang boleh melakukan beberapa kesan atau operasi khas berdasarkan kedudukan skrol apabila pengguna menatal halaman web. Secara umumnya, pemantauan skrol boleh dilaksanakan melalui JavaScript. Walau bagaimanapun, dalam beberapa kes, kami juga boleh mencapai kesan pemantauan tatal melalui CSS tulen. Artikel ini akan memperkenalkan cara melaksanakan penatalan halaman web melalui CSS
