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.
反復アプローチでは、すべての文字列を反復処理します。 1から2 legth(string) -1。
例
#include <bits/stdc++.h>
using namespace std;
string subString(string s, int binary){
string sub = "";
int pos;
while(binary>0){
pos=log2(binary&-binary)+1;
sub=s[pos-1]+sub;
binary= (binary & ~(1 << (pos-1)));
}
reverse(sub.begin(),sub.end());
return sub;
}
void findAllSubStrings(string s){
map<int, set<string> > sorted_subsequence;
int len = s.size();
int limit = pow(2, len);
for (int i = 1; i <= limit - 1; i++) {
string sub = subString(s, i);
sorted_subsequence[sub.length()].insert(sub);
}
for (auto it : sorted_subsequence) {
for (auto ii : it.second)
cout<<ii<<" ";
cout<<"\t";
}
}
int main() {
string s = "wxyz";
cout<<"The substring are :\n";
findAllSubStrings(s);
return 0;
} 出力
サブストリングは-
ですw x y z wx wy wz xy xz yz wxy wxz wyz xyz wxyz
-
C ++の反復アプローチを使用して、バイナリツリーのすべてのリーフノードを左から右に印刷します。
この問題では、二分木が与えられ、二分木のすべてのリーフノードを左から右に反復アプローチで印刷する必要があります。 問題を理解するために例を見てみましょう 入力- 出力 − 1 4 7 反復アプローチを使用してこの問題を解決するために、深さ優先探索(DFS)を使用します。ツリーをトラバースするには、ルートノードから開始し、それがリーフノードであるかどうかを確認してから、ノードを出力します。それ以外の場合は、子ツリーを検索し、子サブツリーをトラバースしてすべてのリーフノードを検索します。 例 以下のコードは私たちのソリューションを実装します- #include <iost
-
C++でDFSを使用してn-aryツリーのすべてのリーフノードを出力します
この問題では、n-aryのエッジを含む2次元配列が与えられます。ここで、edgeはn-aryツリーのエッジを定義します。作成したa-aryツリーのすべてのリーフノードを印刷する必要があります。 n-aryツリー は最大n個の子を持つツリーです。つまり、ノードは1、2、...n個の子ノードを持つことができます。 問題を理解するための例を見てみましょう- Input: edge[][] = {{5,8}, {5,6}, {8,1}, {8,4}, {6,7}} Output: 1 4 7 説明 −エッジ配列を使用してツリーを作成しましょう− このツリーのリーフノードは1、4、7です