C++で指定されたパターンで終わる文字列をカウントします
文字列str[]の配列とパターン文字列patが与えられます。目標は、最後にパターンpatがあるstr[]の文字列要素を見つけることです。
strの各文字列をトラバースし、最後の文字をpatと比較します。増分と一致する場合
例を挙げて理解しましょう。
入力
str[]={ “kittens”, “hens”, “deers”, “dogs” } pat=”ens”
出力
Strings that end with given pattern: 2
説明
Strings “kitt-ens” and “h-ens” end with “ens”.
入力
str[]={ “tickets”, “wickets”, “bats”, “cricket” } pat=”et”
出力
Strings that end with given pattern: 1
説明
Strings “wick-et” ends with “et”.
以下のプログラムで使用されているアプローチは次のとおりです
-
配列str[]とパターン文字列patを文字列化します。
-
Nはstr[]の文字列ではありません。
-
関数endPattern(string str []、int n、string ptr)は、指定されたパターンで終了するstr内の文字列の数を返します
-
初期変数カウントを0とします。
-
forループを使用してi=1からi
までトラバースします。 -
各文字列str[i]をsとします。 slenをs.length()とします。
-
plen =ptr.lenght()を取ります。フラグ=1を取ります。
-
ここで、plenとslenを1ずつ減らして、文字列sとパターンptrの最後のインデックスを取得します。
-
plen>=0になるまでwhileループチェックを使用します。
-
s [slen]!=ptr[plen]がある場合。 flag =0に設定し、ループを解除します。それ以外の場合は、plenとslenをデクリメントして、最後から次の文字を確認します。
-
whileが終了した後、フラグがまだ1の場合は、ptrがsで発生するときにカウントをインクリメントします。
-
すべてのループの終了後のカウントを返します。これは、指定されたパターンで終わる文字列のカウントです。
例
#include <bits/stdc++.h> using namespace std; int endPattern(string str[], int n, string ptr){ int count=0; for(int i=0;i<n;i++){ string s=str[i]; int slen=s.length(); int plen=ptr.length(); int flag=1; slen--; //last index plen--; while(plen>=0){ if(ptr[plen]!=s[slen]){ flag=0; break; } plen--; slen--; } if(flag==1) { count++; } } return count; } int main(){ string patrn = "pes"; int N = 4; string str[] = { "stripes", "cars", "ripes", "pipes" }; cout <<"Strings that end with given pattern: "<<endPattern(str,N,patrn); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Strings that end with given pattern: 3
-
C++で指定された条件を満たす可能性のあるすべてのN桁の数値をカウントします
このチュートリアルでは、与えられた条件を満たす可能なN桁の数字の数を見つけるプログラムについて説明します。 このために、整数が提供されます。私たちの仕事は、N桁の数字のどれが続くかを確認することです 数値+逆(数値)=10N -1 例 #include <bits/stdc++.h> using namespace std; //returning the count of numbers string count_num(int N){ if (N % 2 == 1) return 0; &n
-
C++の辞書で特定のパターンに一致するすべての文字列を検索します
辞書と呼ばれる文字列のリストがあると考えてください。別のパターン文字列があります。私たちの仕事は、パターンに一致する文字列を見つけることです。辞書が[“ abb”、“ xyz”、“ aab”、“ kmm”]のようで、パターンが“ stt”であるとすると、結果は“ abb”、“ kmm”になります。パターンには最初に1つの文字があり、次に2つの同じ文字があるため、同じパターン文字列に従います。 この問題を解決するために、パターンに一致する辞書の単語がエンコード後のパターンと同じハッシュを持つように、パターンをエンコードします。辞書内のすべての単語を繰り返し処理し、ハッシュが同じ場所に表示します