移除母音後列印反轉字串


reverse() 是一個預安裝的預定義標頭檔案,在 C++ 環境中的過程中用作模板定義。該方法能夠以從後到前的順序反轉任何值容器中的範圍內的元素。此過程的時間複雜度為 O(n)。假設我們有一個宣告為 str[] 的字串或句子,其中包含一些資料元素,現在任務是在從該字串中移除母音後執行反轉過程以獲得最終結果。

以下是一些過程方法的一般示例 -

Input taken for the process:duck
Output by the process:kud
Input taken for the process: hello
Output by the process is here: holle
Input taken for the process: hello world
Output by the process: hollo werld

從字串中移除母音後反轉字串的演算法

在此可能的演算法中,我們將執行在 C++ 環境中不包含母音的句子的列印過程並將其反轉。透過此演算法,我們將構建一些 C++ 語法,以便以有效的方式瞭解問題陳述。

  • 步驟 1 - 開始該過程。

  • 步驟 2 - 宣告輸入輸出流。

  • 步驟 3 - 匯入內建類和宣告的函式。

  • 步驟 4 - 宣告字串的值。

  • 步驟 5 - 構造母音的返回集。

  • 步驟 6 - 列印結果字串。

  • 步驟 7 - 構造移除母音的表示法。

  • 步驟 8 - 列印第一個字元。

  • 步驟 9 - 標記一個迴圈以檢查每個字元的值。

  • 步驟 10 - 比較連續字元的值。

  • 步驟 11 - 宣告一個驅動程式字串。

  • 步驟 12 - 移除母音並獲取返回值。

  • 步驟 13 - 在不包含母音的字串上執行反轉方法。

  • 步驟 13 - 獲取結果並終止該過程。

從字串中移除母音後反轉字串的語法

vector<char> vowels = {'a', 'e', 'i', 'o', 'u','A', 'E', 'I', 'O', 'U';
for (int i = 0; i < str.length(); i++){
      if (find(vowels.begin(), vowels.end(),
      str[i]) != vowels.end()){
         str = str.replace(i, 1, "");
         i -= 1;
      }
   }
   return str;
}
int main(){
string str = "STRING STATYEMENT ONE" " STRING STATEMENT 2";
cout << remVowel(str) << endl;
string remVowel(string str){
   regex r("[aeiouAEIOU]");
   return regex_replace(str, r, "");
}
int main(){
string str = "STRING STATEMENT";
cout << (remVowel(str));

在此可能的語法中,我們將執行在 C++ 環境中列印特定內容中不存在母音的句子或字串的過程,並反轉整個結果字串。透過此演算法,我們將構建一些 C++ 程式,以全面瞭解問題陳述。

遵循的方法

  • 方法 1 - 使用迭代、遍歷和 min_cost (String str) 方法反轉移除母音後字串的 C++ 程式

  • 方法 2 - 使用實用程式函式、兩個單獨的指標和 findwinner (String str) 方法反轉移除母音後字串的 C++ 程式

方法 1:使用迭代、遍歷和 Min_cost (String str) 方法

迭代方法的使用

在此可能的方法中,我們將應用迭代方法來列印不包含母音的字串或句子。移除母音後,我們將再次反轉整個特定字串以獲得所需的結果。

char str[100];
int i, j, len = 0;
printf("ENTER THE VALUE OF THE STRING : ");
scanf("%s", str);
len = strlen(str);
for (i = 0; i < len; i++) {
   if (str[i] == 'a' || str[i] == 'e' || str[i] == 'i' || str[i] == 'o' ||
   str[i] == 'u' ||
   str[i] == 'A' || str[i] == 'E' || str[i] == 'I' || str[i] == 'O' ||
   str[i] == 'U') {
      for (j = i; j < len; j++) {
         str[j] = str[j + 1];
      }
      i--;
      len--;
   }
   str[len + 1] = '\0';
}
printf("AFTER REMOVING VOWEL STATEMENT HERE : %s", str);

示例

//C++ program to reverse a string after removing vowels by using iteration
#include <iostream>
#include <string>
using namespace std;
string reverseString(string s){
   string reversed;
   for (int i = s.length() - 1; i >= 0; i--){
      reversed += s[i];
   }
   return reversed;
}
string removeVowels(string s,string reversed){
   string withoutVowels;
   for (int i = 0; i < s.length(); i++){
      char c = s[i];
      if (c != 'a' && c != 'e' && c != 'i' && c != 'o' && c != 'u' && c
      != 'A' && c != 'E' && c != 'I' && c != 'O' && c != 'U'){
         withoutVowels += reversed[i];
      }
   }
   return withoutVowels;
}
int main() {
   string s = "ARBRDDKOLKATADHAKAINDIABANGLADESH";
   string reversed = reverseString(s);
   string withoutVowels = removeVowels(s,reversed);
   cout << withoutVowels << endl;
   return 0;
}

輸出

SEDALGABINIKDAKOKDRRA

遍歷方法的使用

在此可能的方法中,我們將應用遍歷方法來列印不包含母音的字串或句子。移除母音後,我們將再次反轉整個特定字串以獲得所需的結果。

示例

//C++ program to reverse a string after removing vowels by using traversal method
#include <bits/stdc++.h>
using namespace std;
void replaceOriginal(string s, int n){
   string r(n, ' ');
   for (int i = 0; i < n; i++){
      r[i] = s[n - 1 - i];
      if (s[i] != 'a' && s[i] != 'e' && s[i] != 'i'
      && s[i] != 'o' && s[i] != 'u'){
         cout << r[i];
      }
   }
   cout << endl;
}
int main(){
   string s = "KOLKATADHAKAARBRDDINDBANGLADESH";
   int n = s.length();
   replaceOriginal(s, n);
   return 0;
}

輸出

HSEDALGNABDNIDDRBRAAKAHDATAKLOK

Min_cost(string st) 方法的使用

在此可能的方法中,我們應用了 min_cost(string st) 方法來列印不包含母音的字串或句子。移除母音後,我們將再次反轉整個特定字串以獲得所需的結果。

示例

//C++ program to reverse a string after removing vowels and capture the cost of that reverse string by using min_cost(string st)
#include<bits/stdc++.h>
using namespace std;
int min_cost(string st){
   string vow = "aeiou";
   int cost = 0;
   for(int i = 0; i < st.size(); i++){
      vector<int> costs;
      for(int j = 0; j < 5; j++)
      costs.push_back(abs(st[i] - vow[j]));
      cost += *min_element(costs.begin(),
      costs.end());
   }
   return cost;
}
int main(){
   string str = "arbrddindbangladeshkolkatadhaka";
   cout << (min_cost(str));
}

輸出

34

方法 2:使用實用程式函式、兩個單獨的指標和 Findwinner (String str) 方法

實用程式函式的使用

在此可能的方法中,我們應用了各種實用程式函式方法來列印不包含母音的字串或句子。移除母音後,我們將再次反轉整個特定字串以獲得所需的結果。

char s[100], t[100];
int c, d = 0;
printf("VOWEL DELETE STATEMENT IS HERE\n");
gets(s);
for (c = 0; s[c] != '\0'; c++){
   if (check_vowel(s[c]) == 0){
      t[d] = s[c];
      d++;
   }
   for (int i = s.length() - 1; i >= 0; i--){
      reversed += s[i];
      return withoutVowels;
   }
   t[d] = '\0';
   strcpy(s, t);
   printf("String after deleting vowels: %s\n", s);
   return 0;
}
int check_vowel(char t){
if (t == 'a' || t == 'A' || t == 'e' || t == 'E' || t == 'i' || t == 'I' || t
=='o' || t=='O' || t == 'u' || t == 'U')
return 1;

示例

//C++ program to reverse a string after removing vowels by using utility function to check for vowel
#include<bits/stdc++.h>
using namespace std;
bool isVowel(char c){
   return (c=='a' || c=='A' || c=='e' ||
   c=='E' || c=='i' || c=='I' ||
   c=='o' || c=='O' || c=='u' ||
   c=='U');
}
string reverseVowel(string str){
   int j=0;
   string vowel;
   for (int i=0; str[i]!='\0'; i++)
   if (isVowel(str[i]))
   vowel[j++] = str[i];
   for (int i=0; str[i]!='\0'; i++)
   if (isVowel(str[i]))
   str[i] = vowel[--j] ;
   return str;
}
int main(){
   string str = "GOOD MORNING KOLKATA! I AM GOING TO DHAKA!";
   cout << reverseVowel(str);
   return 0;
}

輸出

GAAD MORNING KOLKATI! A AM GOING TO DHOKO!

兩個指標方法的使用

在此可能的方法中,我們將宣告並在字串上應用兩個指標以列印不包含母音的字串或句子。移除母音後,我們將再次反轉整個特定字串以獲得所需的結果。

示例

//C++ program to reverse a string after removing vowels by using two pointers to check for vowel
#include<bits/stdc++.h>
using namespace std;
bool isVowel(char c){
   return (c=='a' || c=='A' || c=='e' ||
   c=='E' || c=='i' || c=='I' ||
   c=='o' || c=='O' || c=='u' ||
   c=='U');
}
string reverseVowel(string str){
   int i = 0;
   int j = str.length()-1;
   while (i < j){
      if (!isVowel(str[i])){
         i++;
         continue;
      }
      if (!isVowel(str[j])){
         j--;
        continue;
      }
      swap(str[i], str[j]);
      i++;
      j--;
   }
   return str;
}
int main(){
   string str = "I AM HERE IN DHAKA! IT IS A BEAUTIFUL CITY!";
   cout << reverseVowel(str);
   return 0;
}

輸出

I UM HIRU AN DHEKA! IT IS A BAIETEFAL CITY!

FindWinner(string s) 方法的使用

在此可能的方法中,我們將應用 findWinner(String S) 來列印不包含母音的字串或句子。移除母音後,我們將再次反轉整個特定字串以獲得所需的結果。這是一種應用程式級方法,透過演示字串反轉過程並使用 findWinner(string s) 查詢遊戲的獲勝者來查詢遊戲的獲勝者。

示例

//C++ program to create an application level example to find winner game by demonstrating the string reverse process and find the winner of the game by using the findWinner(string s)
#include <bits/stdc++.h>
using namespace std;
void findWinner(string s){
   int vowels_count = 0,
   consonants_count = 0;
   for (int i = 0; i < s.size(); i++){
      if (s[i] == 'a'
      || s[i] == 'e'
      || s[i] == 'i'
      || s[i] == 'o'
      || s[i] == 'u'){
         vowels_count++;
      } else {
         consonants_count++;
      }
   }
   if (vowels_count == 0){
      if (consonants_count % 2 == 0){
         cout << "Player B";
      } else{
         cout << "Player A";
      }
   } else if (vowels_count == 1
   && consonants_count % 2 != 0){
      cout << "Player A";
   } else {
      cout << "D";
   }
}
int main(){
   string s = "Hi Rebeca, Rudra Here! How Are You?";
   findWinner(s);
   return 0;
}

輸出

D

結論

今天在這篇文章中,我們學習瞭如何在 C++ 環境中實現構建和應用各種方法以從句子或字串中列印不包含母音的句子的過程,以及反轉結果值。透過上述邏輯、語法和演算法;我們嘗試構建一些 C++ 程式碼以有效地解決問題陳述。

更新於: 2023-12-27

198 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告