Jadual Kandungan
Memahami penyataan masalah
Kaedah
Contoh
Output
Kes Ujian
Kesimpulan
Rumah pembangunan bahagian belakang C++ Susun semula rentetan untuk memaksimumkan jarak minimum antara mana-mana pasangan vokal

Susun semula rentetan untuk memaksimumkan jarak minimum antara mana-mana pasangan vokal

Sep 11, 2023 pm 07:49 PM
rentetan susun semula memaksimumkan

Susun semula rentetan untuk memaksimumkan jarak minimum antara mana-mana pasangan vokal

Dalam artikel ini, kami akan merungkai masalah menarik dari bidang manipulasi rentetan: "Susun semula rentetan untuk memaksimumkan jarak minimum antara mana-mana pasangan vokal". Masalah ini mencabar kami untuk memanipulasi susunan aksara dalam rentetan untuk memastikan jarak minimum yang terbesar mungkin antara mana-mana dua aksara vokal. Kami akan membincangkan isu ini secara terperinci, menyediakan pelaksanaan kod C++, dan menggambarkan dengan contoh.

Memahami penyataan masalah

Diberi rentetan, tugasnya adalah untuk menyusun semula aksara dalam rentetan supaya jarak minimum antara mana-mana pasangan vokal dimaksimumkan. Dalam erti kata lain, kami mahu vokal berada sejauh mungkin antara satu sama lain.

Vokal dalam bahasa Inggeris ialah "a", "e", "i", "o", "u" dan versi huruf besarnya.

Kaedah

Untuk menyelesaikan masalah ini, kami akan mengambil pendekatan dua langkah -

Pertama, kira bilangan vokal dalam rentetan dan simpan kedudukannya dalam tatasusunan.

Seterusnya, susun tatasusunan dan kira perbezaan maksimum antara mana-mana dua elemen berturut-turut. Perbezaan ini mewakili jarak maksimum dan minimum antara mana-mana pasangan vokal.

Contoh

Mari laksanakan strategi ini dalam C++ -

#include <bits/stdc++.h>
using namespace std;

// Function to check if a character is a vowel
bool isVowel(char c) {
   return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ||
      c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U';
}

// Function to find maximum minimum distance between vowels
int maxMinDist(string s) {
   vector<int> pos;
   for (int i = 0; i < s.size(); i++) {
      if (isVowel(s[i])) pos.push_back(i);
   }
   sort(pos.begin(), pos.end());
   int maxDist = 0;
   for (int i = 1; i < pos.size(); i++) {
      maxDist = max(maxDist, pos[i] - pos[i-1]);
   }
   return maxDist;
}

int main() {
   string s = "programming";
   cout << "Max minimum distance between vowels: " << maxMinDist(s);
   return 0;
}
Salin selepas log masuk

Output

Max minimum distance between vowels: 3
Salin selepas log masuk

Kod ini mula-mula mencari kedudukan semua vokal dalam rentetan dan menyimpannya dalam vektor. Kemudian, ia mengisih vektor ini dan mencari perbezaan maksimum antara elemen berturut-turut. Perbezaan ini mewakili jarak maksimum dan minimum antara mana-mana pasangan vokal.

Kes Ujian

Mari kita pertimbangkan rentetan "pengaturcaraan". Kedudukan vokal "o", "a" dan "i" masing-masing ialah 1, 4 dan 7. Oleh itu, jarak maksimum dan minimum antara mana-mana pasangan vokal ialah 3.

Kesimpulan

Artikel ini menyediakan pendekatan langkah demi langkah untuk masalah memaksimumkan jarak minimum antara mana-mana pasangan vokal dalam rentetan tertentu. Penyelesaiannya melibatkan mengira vokal, menyimpan kedudukannya, dan kemudian mencari perbezaan maksimum antara kedudukan tersebut. Walaupun masalah itu mungkin kelihatan rumit pada pandangan pertama, ia sangat dipermudahkan apabila dipecahkan kepada langkah-langkah ini.

Atas ialah kandungan terperinci Susun semula rentetan untuk memaksimumkan jarak minimum antara mana-mana pasangan vokal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penjelasan terperinci tentang kaedah menukar jenis int kepada rentetan dalam PHP Penjelasan terperinci tentang kaedah menukar jenis int kepada rentetan dalam PHP Mar 26, 2024 am 11:45 AM

Penjelasan terperinci tentang kaedah menukar jenis int kepada rentetan dalam PHP

Bagaimana untuk menentukan sama ada rentetan Golang berakhir dengan aksara yang ditentukan Bagaimana untuk menentukan sama ada rentetan Golang berakhir dengan aksara yang ditentukan Mar 12, 2024 pm 04:48 PM

Bagaimana untuk menentukan sama ada rentetan Golang berakhir dengan aksara yang ditentukan

Bagaimana untuk menyemak sama ada rentetan bermula dengan aksara tertentu dalam Golang? Bagaimana untuk menyemak sama ada rentetan bermula dengan aksara tertentu dalam Golang? Mar 12, 2024 pm 09:42 PM

Bagaimana untuk menyemak sama ada rentetan bermula dengan aksara tertentu dalam Golang?

Bagaimana untuk mengulangi rentetan dalam python_python mengulangi tutorial rentetan Bagaimana untuk mengulangi rentetan dalam python_python mengulangi tutorial rentetan Apr 02, 2024 pm 03:58 PM

Bagaimana untuk mengulangi rentetan dalam python_python mengulangi tutorial rentetan

Bagaimana untuk menyelesaikan masalah aksara Cina yang kacau apabila menukar perenambelasan kepada rentetan dalam PHP Bagaimana untuk menyelesaikan masalah aksara Cina yang kacau apabila menukar perenambelasan kepada rentetan dalam PHP Mar 04, 2024 am 09:36 AM

Bagaimana untuk menyelesaikan masalah aksara Cina yang kacau apabila menukar perenambelasan kepada rentetan dalam PHP

Manipulasi rentetan PHP: cara praktikal untuk mengalih keluar ruang dengan berkesan Manipulasi rentetan PHP: cara praktikal untuk mengalih keluar ruang dengan berkesan Mar 24, 2024 am 11:45 AM

Manipulasi rentetan PHP: cara praktikal untuk mengalih keluar ruang dengan berkesan

Petua Padanan Rentetan PHP: Elakkan Ungkapan Disertakan Kabur Petua Padanan Rentetan PHP: Elakkan Ungkapan Disertakan Kabur Feb 29, 2024 am 08:06 AM

Petua Padanan Rentetan PHP: Elakkan Ungkapan Disertakan Kabur

Teknik PHP untuk memadam dua aksara terakhir rentetan Teknik PHP untuk memadam dua aksara terakhir rentetan Mar 23, 2024 pm 12:18 PM

Teknik PHP untuk memadam dua aksara terakhir rentetan

See all articles