


Terjemah yang berikut ke dalam bahasa Cina mengikut syarat yang diberikan: Alih keluar aksara untuk mendapatkan jumlah indeks rentetan kosong mengikut syarat yang diberikan
Konsep yang berkaitan dengan manipulasi rentetan, seperti jumlah indeks aksara yang dialih keluar untuk mendapatkan rentetan kosong, sering digunakan dalam cabaran pengaturcaraan dan pertandingan. Hasilnya kemudian dikira menggunakan jumlah indeks aksara yang dihapuskan.
Mengalih keluar jumlah indeks aksara untuk mendapatkan rentetan kosong ialah idea praktikal dalam manipulasi rentetan yang boleh digunakan untuk menyelesaikan pelbagai kesukaran dan cabaran pengaturcaraan.
Pengendalian masalah
Kita mesti terlebih dahulu memahami pernyataan masalah dan kriteria yang diberikan untuk mencari jumlah bilangan indeks aksara yang dihapuskan untuk menghasilkan rentetan kosong.
Diberi rentetan S, matlamatnya adalah untuk menentukan jumlah bilangan aksara yang boleh dialih keluar daripada S sementara masih membiarkan rentetan itu kosong. Sebagai contoh, jika S = "kod", aksara pada kedudukan 0, 4, 5, dan 6 boleh dihapuskan untuk mendapatkan rentetan kosong. Eksponen ini menambah sehingga 0 + 4 + 5 + 6 = 15.
Namun, menggunakan timbunan adalah strategi biasa untuk menyelesaikan masalah ini. Kita boleh menggelung melalui rentetan S dan menentukan sama ada setiap aksara boleh dialih keluar pada setiap lelaran. Jika indeksnya boleh dialih keluar, kita boleh menambahnya pada timbunan. Jika ia tidak boleh dialih keluar, kita boleh lihat sama ada kita boleh mengalih keluar aksara di bahagian atas timbunan bersama-sama dengan aksara sedia ada. Jika ia boleh dihapuskan, kami berbuat demikian dan menambah indeksnya pada indeks aksara semasa. Proses ini boleh diulang sehingga semua aksara dalam rentetan telah diproses.
Pseudokod berikut menggambarkan strategi ini -
stack = [] sum = 0 for k in range(len(S)): if stack and S[k] == S[stack[-1]]: stack.pop() sum += k + stack[-1] if stack else k else: stack.append(k) return sum
Dalam pseudokod ini, pembolehubah jumlah dan timbunan kosong kedua-duanya dimulakan kepada 0. Kemudian gunakan gelung for untuk mengulangi rentetan S berulang kali. Semak setiap aksara untuk melihat sama ada ia boleh dialih keluar bersama dengan watak di atas. timbunan, jika timbunan tidak kosong. Jika boleh, watak itu dikeluarkan daripada timbunan dan jumlah indeksnya dan watak dalam permainan ditambah pada pembolehubah jumlah. Dalam kes ini, kami menambah indeksnya pada timbunan dan cuba mengalih keluarnya. Kemudian kita kembalikan pembolehubah jumlah.
Kerumitan masa dan kerumitan ruang kaedah ini adalah O(n), dengan n ialah panjang rentetan S dan n ialah bilangan maksimum aksara yang boleh dipadamkan daripada S.
tatabahasa
Sintaks C++ untuk menentukan jumlah indeks aksara yang dihapuskan dengan mencipta rentetan kosong berdasarkan syarat yang ditentukan adalah seperti berikut -
Penerangan
Kami mula-mula mendapatkan rentetan yang dimasukkan oleh pengguna.
Kami menetapkan nilai permulaan n kepada panjang rentetan str.
Seterusnya, kita mulakan cnt kepada 0, yang akan mengira bilangan kejadian aksara "U".
Kami menetapkan nilai awal jumlah kepada 0, yang akan menyimpan jumlah bilangan indeks aksara yang dihapuskan.
Selepas itu, kita gelung melalui str dan semak setiap aksara seperti yang ditunjukkan di bawah -
Jika aksara ialah "U", kita naikkan cnt dan tambahkan jumlahnya sebanyak (n - i - 1) + 2 * cnt.
Jika aksara bukan "U", kami menambah jumlah dengan menambah i + 2 * cnt.
Akhir sekali, kami mengeluarkan nilai jumlah.
NOTA - Memandangkan butiran soalan ini tidak dinyatakan dengan jelas, syarat ini diandaikan.
{ string str; cin >> str; int n = str.size(); int cnt = 0, sum = 0; for (int k = 0; i < n; k++) { if (str[k] == 'U') { sum += (n - k - 1) + 2 * cnt; cnt++; } else { sum += k + 2 * cnt; } } cout << sum << endl; }
Algoritma
Algoritma C++ untuk mengira jumlah bilangan indeks aksara yang dihapuskan dengan mencipta rentetan kosong di bawah syarat yang ditetapkan -
Langkah 1 - Mula-mula, tentukan pembolehubah rentetan dan masukkan rentetan yang disediakan oleh pengguna.
Langkah 2 - Buat tindanan untuk memegang aksara rentetan.
Langkah 3 - Gelung melalui aksara rentetan input mengikut aksara.
Langkah 4 - Jika aksara semasa kosong, tolaknya ke tindanan.
Langkah 5 - Jika aksara semasa dan aksara atas tindanan adalah sama, keluarkan aksara atas daripada tindanan.
Langkah 6 - Jika watak semasa berbeza daripada watak di bahagian atas tindanan, tolakkannya ke atas tindanan.
Langkah 7 - Hanya aksara yang tidak boleh dipadamkan akan kekal dalam tindanan selepas gelung.
Langkah 8 - Tambahkan indeks aksara yang masih dalam timbunan.
Langkah 9 - Paparkan jumlah bilangan indeks.
Kaedah untuk diikuti
Kaedah 1
Kira jumlah indeks penyingkiran aksara menggunakan keadaan berikut untuk menjana rentetan kosong -
Dalam contoh ini, rentetan "abacbdc" digunakan sebagai input. Kod ini menggunakan dua indeks i dan j untuk melintasi rentetan dari awal hingga akhir. Syarat untuk mengalih keluar aksara daripada rentetan adalah seperti berikut:
Jika s[i] dan s[j] adalah sama, gerakkan kedua-dua indeks ke tengah rentetan.
Jika s[i] kurang daripada s[j], padamkan aksara pada indeks j dan tambahkan jumlah indeks dengan indeks i+1.
Jika s[i] lebih besar daripada s[j], padamkan aksara pada indeks i dan tambahkan jumlah indeks dengan indeks j+1.
Selepas menghapuskan semua aksara, laporkan jumlah indeks kepada konsol.
Sila ingat bahawa ini hanyalah ilustrasi dan keperluan penyingkiran aksara mungkin berubah bergantung pada jenis masalah.
示例 1
#include <iostream> #include <string> using namespace std; int main() { string s = "abacbdc"; int sum = 0; int i = 0; int j = s.length() - 1; while (i < j) { if (s[i] == s[j]) { i++; j--; } else if (s[i] < s[j]) { sum += i + 1; i++; s.erase(j, 1); j--; } else { sum += j + 1; j--; s.erase(i, 1); i++; } } cout << "Sum of indices of characters removed: " << sum << endl; return 0; }
输出
Sum of indices of characters removed: 6
方法2
str 字符串和字符是 sum_of_indices 函数的输入。然后,迭代字符串,确定每个字符是否等于 c。如果是这样,函数会递减循环索引以考虑删除的字符,并将字符的索引添加到运行总数中,然后使用擦除技术从字符串中删除字符。然后该函数返回已消除的字符索引的总数。
示例字符串 str 和字符 c 在 main 函数中定义,这两个输入用于调用 sum_of_indices 函数。总数作为结果打印到控制台。
示例 2
#include <iostream> #include <string> using namespace std; int sum_of_indices(string str, char c) { int sum = 0; for (int i = 0; i < str.length(); i++) { if (str[i] == c) { sum += i; str.erase(i, 1); i--; } } return sum; } int main() { string str = "abcbcdc"; char c = 'c'; int sum = sum_of_indices(str, c); cout << "Sum of indices of characters removed to obtain empty string: " << sum << endl; return 0; }
输出
Sum of indices of characters removed to obtain empty string: 9
结论
需要操作字符串及其索引来解决根据提供的条件计算消除的字符索引之和以获得空字符串的问题。为了解决这个问题,循环遍历字符串,如果两个连续字符相同,则在更新索引之前删除它们。一旦我们有了一个空字符串,我们就可以添加被删除的字符的索引以产生一个空字符串。
有许多解决方案需要解决,例如利用堆栈或队列来跟踪要删除的字符,或者使用递归来迭代地从字符串中删除字符。
Atas ialah kandungan terperinci Terjemah yang berikut ke dalam bahasa Cina mengikut syarat yang diberikan: Alih keluar aksara untuk mendapatkan jumlah indeks rentetan kosong mengikut syarat yang diberikan. 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

Didapati terdapat folder inetpub pada pemacu C komputer yang mengambil banyak memori Apakah folder inetpub ini? Bolehkah ia dipadamkan terus? Sebenarnya, inetpub ialah folder pada pelayan IIS Nama penuh IIS ialah Perkhidmatan Maklumat Internet, iaitu Perkhidmatan Maklumat Internet Ia boleh digunakan untuk membina dan menyahpepijat tapak web. Kaedah khusus adalah seperti berikut: 1. Klik kanan menu Mula dan pilih "Program dan Ciri". 2. Selepas dibuka, klik "Hidupkan atau matikan ciri Windows". 3. Dalam senarai ciri Windows, nyahtanda II

Bagaimana untuk memadamkan nota Xiaohongshu? pandangan! Tutorial penggunaan Xiaohongshu Cara memadam nota Xiaohongshu 1. Mula-mula buka APP Xiaohongshu dan masukkan halaman utama, pilih [Saya] di sudut kanan bawah untuk memasuki kawasan khas 2. Kemudian di kawasan Saya, klik pada halaman nota sebagai ditunjukkan di bawah , pilih nota yang anda mahu padamkan;

1. Pertama sekali, adalah palsu untuk menyekat dan memadam seseorang secara kekal dan tidak menambahkannya secara kekal. Jika anda ingin menambah pihak lain selepas anda menyekat dan memadamkannya, anda hanya memerlukan persetujuan pihak lain. 2. Jika pengguna menyekat seseorang, pihak yang satu lagi tidak akan dapat menghantar mesej kepada pengguna, melihat kalangan rakan pengguna atau membuat panggilan dengan pengguna. 3. Menyekat tidak bermakna memadamkan pihak lain daripada senarai kenalan WeChat pengguna. 4. Jika pengguna memadamkan pihak lain daripada senarai kenalan WeChat pengguna selepas menyekat mereka, tiada cara untuk pulih selepas pemadaman. 5. Jika pengguna ingin menambah pihak yang satu lagi sebagai rakan semula, pihak yang satu lagi perlu bersetuju dan menambah pengguna itu semula.

Dalam proses penggunaan harian komputer, anda mungkin menerima mesej ralat bahawa fail found.000 hilang dan rosak Apakah folder ini dijumpai.000? Bolehkah ia dipadam jika ia tidak berguna lagi? Oleh kerana ramai orang tidak tahu fail ini, izinkan saya memberitahu anda tentang folder yang dijumpai.000 secara terperinci~ 1. Apakah folder yang dijumpai.000 Apabila komputer hilang sebahagian atau sepenuhnya kerana penutupan tidak sah, , anda boleh mencari folder khas bernama "found.000" dan fail dengan sambungan ".chk" yang terkandung di dalamnya dalam direktori yang ditentukan dalam partition sistem. Ini "fo

Sebagai platform e-dagang sosial yang popular, Xiaohongshu telah menarik sejumlah besar pengguna untuk berkongsi kehidupan harian dan pengalaman membeli-belah mereka. Kadangkala kami mungkin secara tidak sengaja menerbitkan beberapa kandungan yang tidak sesuai, yang perlu dipadamkan dalam masa untuk mengekalkan imej peribadi kami dengan lebih baik atau mematuhi peraturan platform. 1. Bagaimana untuk memadam keluaran Xiaohongshu? 1. Log masuk ke akaun Xiaohongshu anda dan masukkan halaman utama peribadi anda. 2. Di bahagian bawah halaman utama peribadi, cari pilihan "Ciptaan Saya" dan klik untuk masuk. 3. Pada halaman "Ciptaan Saya", anda boleh melihat semua kandungan yang diterbitkan, termasuk nota, video, dsb. 4. Cari kandungan yang perlu dipadamkan dan klik butang "..." di sebelah kanan. 5. Dalam menu pop timbul, pilih pilihan "Padam". 6. Selepas mengesahkan pemadaman, kandungan akan hilang dari laman utama peribadi anda dan halaman awam.

Xiaohongshu ialah platform e-dagang sosial yang popular, dan komen interaktif antara pengguna merupakan kaedah komunikasi yang sangat diperlukan pada platform tersebut. Kadangkala, kami mungkin mendapati ulasan kami telah dipadamkan oleh orang lain, yang boleh mengelirukan. 1. Bagaimanakah saya boleh mendapatkan semula ulasan orang lain yang dipadamkan pada Xiaohongshu? Apabila anda mendapati ulasan anda telah dipadamkan, anda boleh cuba mencari terus siaran atau produk yang berkaitan di platform terlebih dahulu untuk melihat sama ada anda masih boleh menemui ulasan tersebut. Jika ulasan masih dipaparkan selepas dipadamkan, ia mungkin telah dipadamkan oleh pemilik siaran asal Pada masa ini, anda boleh cuba menghubungi pemilik siaran asal untuk bertanya sebab memadam ulasan dan meminta untuk memulihkan ulasan. Jika ulasan telah dipadamkan sepenuhnya dan tidak dapat ditemui pada siaran asal, kemungkinan ia dikembalikan pada platform agak tipis. Anda boleh mencuba cara lain

Baru-baru ini, ramai netizen bertanya kepada editor, apakah itu fail hiberfil.sys? Bolehkah hiberfil.sys mengambil banyak ruang pemacu C dan dipadamkan? Editor boleh memberitahu anda bahawa fail hiberfil.sys boleh dipadamkan. Mari kita lihat butiran di bawah. hiberfil.sys ialah fail tersembunyi dalam sistem Windows dan juga fail hibernasi sistem. Ia biasanya disimpan dalam direktori akar pemacu C, dan saiznya bersamaan dengan saiz memori yang dipasang sistem. Fail ini digunakan apabila komputer sedang hibernasi dan mengandungi data memori sistem semasa supaya ia boleh dipulihkan dengan cepat kepada keadaan sebelumnya semasa pemulihan. Oleh kerana saiznya adalah sama dengan kapasiti memori, ia mungkin mengambil jumlah ruang cakera keras yang lebih besar. hiber

Pembantu pemindahan fail WeChat tersedia untuk setiap pengguna Sesetengah pengguna menggunakannya sebagai memo untuk merekodkan beberapa perkara. Jadi bagaimana untuk memadam sepenuhnya Pembantu Pemindahan Fail WeChat? Izinkan saya memperkenalkannya kepada anda secara terperinci di bawah. Bagaimana untuk memadam sepenuhnya Pembantu Pemindahan Fail WeChat Jawapan: [WeChat]-[Tekan lama Pembantu Pemindahan Fail]-[Padam sembang ini]. Langkah-langkah khusus: 1. Mula-mula buka perisian WeChat Selepas memasuki halaman utama, kami mencari [Pembantu Pemindahan Fail] dan tekan dan tahan 2. Kemudian pop timbul akan ditandakan sebagai belum dibaca, sematkan sembang ke bahagian atas, lakukan tidak memaparkan sembang, dan memadam sembang Di sini Kita boleh klik [Padam sembang ini];
