C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++で母音で始まり子音で終わる文字列のすべてのサブシーケンスを出力します


この問題では、文字列が与えられ、与えられた文字列から部分文字列を見つける必要があります。検出される部分文字列は、母音で始まり、定数文字で終わる必要があります。

文字列 文字の配列です。

この問題で生成される部分文字列は、文字列の一部の文字を削除することで生成できます。文字列の順序を変更せずに。

Input: ‘abc’
Output: ab, ac, abc

この問題を解決するために、文字列を繰り返して母音を修正し、次のシーケンスをチェックします。解決策を見つけるためのアルゴリズムを見てみましょう-

アルゴリズム

Step 1: Iterate of each character of the string, with variable i.
Step 2: If the ith character is a vowel.
Step 3: If the jth character is a consonant.
Step 4: Add to the HashSet, substring from 1st character to jth character.
Step 5: Repeat the following steps and find substrings from the string.

#include <bits/stdc++.h>
using namespace std;
set<string> st;
bool isaVowel(char c);
bool isaConsonant(char c);
void findSubSequence(string str);
int main(){
   string s = "abekns";
   findSubSequence(s);
   cout<<"The substring generated are :\n";
   for (auto i : st)
      cout<<i<<" ";
   cout << endl;
   return 0;
}
bool isaVowel(char c) {
   return (c=='a'||c=='e'||c=='i'||c=='o'||c=='u');
}
bool isaConsonant(char c) {
   return !isaVowel(c);
}
void findSubSequence(string str) {
   for (int i = 0; i < str.length(); i++) {
      if (isaVowel(str[i])) {
         for (int j = str.length() - 1; j >= i; j--) {
            if (isaConsonant(str[j])) {
               string str_sub = str.substr(i, j + 1);
               st.insert(str_sub);
               for (int k = 1; k < str_sub.length() - 1; k++){
                  string sb = str_sub;
                  sb.erase(sb.begin() + k);
                  findSubSequence(sb);
               }
            }
         }
      }
   }
}

出力

生成される部分文字列は-

です
ab abek abekn abekns abeks aben abens abes abk abkn abkns abks abn abns abs aek aekn aekns aeks aen aens aes ak akn akns aks an ans as ek ekn ekns eks en ens es

  1. C++で奇数と偶数のノードを含むすべてのレベルを出力します

    この問題では、ツリーが与えられます。そして、偶数のノードと奇数のノードを含むすべてのレベルを印刷する必要があります。 概念をよりよく理解するために例を見てみましょう 出力- Levels with odd number of nodes: 1, 3, 4 Levels with even number of nodes: 2 説明 −第1レベルには1つの要素(奇数)、第2レベルには2つの要素(偶数)、第3レベルには3つの要素(奇数)、第4レベルには1つの要素(偶数)が含まれます。 さて、この問題を解決するために。各レベルでノードの数を見つけ、それに応じて偶数-奇数レベルを出力す

  2. Javaで母音と長さがnに等しいすべての単語を抽出するにはどうすればよいですか?

    単語を見つけるには母音文字で始まります- Stringクラスのsplit()メソッドStringクラスのsplit()メソッドを使用して、指定された文字列を文字列の配列に分割します。 forループでは、取得した配列の各単語をトラバースします。 charAt()メソッドを使用して、取得した配列の各単語の最初の文字を取得します。 ifループを使用して、文字がいずれかの母音と等しいかどうかを確認します。等しい場合は、単語を出力します。 例 次の内容のテキストファイルがあるとします- Tutorials Point originated from the idea tha