在C ++中检查字符串是否为other的子序列的程序

假设我们有两个字符串S和T。我们必须检查S是否为T的子序列。

因此,如果输入类似于S =“ abc”,T =“ adbrcyxd”,则输出为True

为了解决这个问题,我们将遵循以下步骤-

  • 如果s与t相同,则-

    • 返回真

  • n:= s的大小,m:= t的大小

  • j:= 0

  • 对于初始化i:= 0,当i <n时,更新(将i增加1),执行-

    • 返回真

    • (将j增加1)

    • 如果t [j]与s [i]相同,则-

    • 如果j与t的大小相同,则-

    • 返回假

    让我们看下面的实现以更好地理解-

    示例

    #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
    猜你喜欢