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

文字列がC++で他の文字列のサブシーケンスであるかどうかをチェックするプログラム


2つの文字列SとTがあるとします。SがTのサブシーケンスであるかどうかを確認する必要があります。

したがって、入力がS ="abc"、T ="adbrcyxd"のような場合、出力はTrueになります

これを解決するには、次の手順に従います-

  • sがtと同じ場合、-

    • trueを返す

  • n:=sのサイズ、m:=tのサイズ

  • j:=0

  • 初期化i:=0の場合、i

    • t[j]がs[i]と同じ場合、-

      • (jを1増やします)

    • jがtのサイズと同じである場合、-

      • trueを返す

  • falseを返す

理解を深めるために、次の実装を見てみましょう-

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   bool solve(string t, string s) {
      if(s == t)
      return true;
      int n = s.size();
      int m = t.size();
      int j = 0;
      for(int i = 0; i < n; i++){
         if(t[j] == s[i])
         j++;
         if(j == t.size())
         return true;
      }
      return false;
   }
};
main(){
   Solution ob;
   string S = "abc", T = "adbrcyxd";
   cout << ob.solve(S, T);
}

入力

"abc", "adbrcyxd"

出力

1

  1. 無向グラフにオイラーパスが含まれているかどうかを確認するC++プログラム

    オイラーパスはパスです。これにより、すべてのノードに1回だけアクセスできます。同じエッジを複数回使用できます。オイラー回路は、特殊なタイプのオイラーパスです。オイラーパスの開始頂点がそのパスの終了頂点にも接続されている場合。 オイラーパスを検出するには、これらの条件に従う必要があります グラフを接続する必要があります。 無向グラフの頂点の次数が奇数でない場合、それはオイラー回路であり、これも1つのオイラーパスです。 ちょうど2つの頂点の次数が奇数の場合、それはオイラーパスです。 入力 出力 両方のグラフにオイラーパスがあります。 アルゴリズム traverse(u、visite

  2. 無向グラフにオイラー閉路が含まれているかどうかを確認するC++プログラム

    オイラー回路について知るために、オイラーパスについての考えがあります。オイラーパスはパスです。これにより、すべてのノードに1回だけアクセスできます。同じエッジを複数回使用できます。オイラー回路は、特殊なタイプのオイラーパスです。オイラーパスの開始頂点がそのパスの終了頂点にも接続されている場合。 回路を検出するには、次の条件に従う必要があります。 グラフを接続する必要があります。 無向グラフの頂点の次数が奇数でない場合、それはオイラー回路です。 入力 出力 グラフにはオイラー回路があります。 アルゴリズム traverse(u、visited) 入力開始ノードuと訪問済みノード