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

C ++を使用して、他の文字列に存在する1つの文字列の部分文字列の数を検索します


この記事では、2つの文字列が与えられ、2番目の文字列で1番目の文字列のサブ文字列がいくつ見つかるかを調べる必要があります(正確なサブ文字列は複数回発生する可能性があります)。例

Input : string1 = “fogl”
   string2 = “google”
Output : 6
Explanation : substrings of string1 present in string2 are [ “o”, “g”, “l”, “og”, “gl”,
“ogl” ].

Input : string1 = “ajva”
   string2 = “java”
Output : 5
Explanation : substrings of string1 present in string2 are [ “a”, “j”, “v”, “a”, “va” ].
>

解決策を見つけるためのアプローチ

別の文字列に存在するいくつかの部分文字列を見つけるというこの問題をどのように解決できるかについて説明しましょう。例を見てください。最初にstring1のすべてのサブ文字列を確認し、次に各サブ文字列が別の文字列に存在するかどうかを確認する必要があることを理解しました。はいの場合は、カウンターをインクリメントし、文字列全体を操作した後、カウンターに格納されている結果を確認します。 。

上記のアプローチのC++コード

これが、与えられた問題を解決するための入力として使用できるC++構文です-

#include<iostream>
#include<string>
using namespace std;

int main() {
   string str1 = "ajva";
   string str2 = "java";
   int count = 0;// counter to store result
   int n = str1.length();

   for (int i = 0; i < n; i++) {

      string str3; // string3 is initialised to store all substrings of string1
      for (int j = i; j < n; j++) {
         str3 += str1[j];

         // checking whether substring present in another string or not
         if (str2.find(str3) != string::npos)
            count++;
      }
   }
   cout << "Number of substrings of one string present in other : "<< count;
   return 0;
}

出力

Number of substrings of one string present in other : 5

コードを理解する

まず、このコードでは、両方の文字列に値を与え、カウンターを0で初期化します。文字列全体を調べて、str1で可能なすべてのサブ文字列を見つけ、それらをstr3に格納します。次に、str2に存在するかどうかにかかわらず、str1の各サブストリングをチェックします。はいの場合、カウンターを1インクリメントすると、最終的にカウンター変数に格納されている出力が出力されます。

結論

この記事では、ある文字列のサブ文字列の数を別の文字列に含める簡単な解決策を見つけます。同じプログラムを、C、java、python、その他の言語などの他の言語で作成できます。この記事がお役に立てば幸いです。


  1. C++を使用して文字列の部分文字列の数を見つける

    この記事では、特定の文字列に形成できるサブ文字列(空ではない)の数を見つけるためのアプローチについて学習します。 Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, ‘oo’, ‘on’, ‘moo’, ‘oon’ and &

  2. C++を使用して停止ステーションの数を見つける

    ポイントXとYの間にn個の中間駅があります。2つの駅が隣接しないように、s駅に停車するように列車を配置できるさまざまな方法の数を数えます。そのため、この記事では、停車駅の数を見つけるためのあらゆる可能なアプローチについて説明します。問題を見ると、sの駅数で列車を止めることができる組み合わせを見つける必要があることがわかります。 問題を解決するためのアプローチ 中間駅が8つあり、3つの中間駅で電車を止める方法を見つける必要がある例を見てみましょう。 n = 8, s = 3 (n-s)、つまり電車が止まらない駅が5つ残っています 電車が止まらないA、B、C、D、Eの5つの駅があります