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

文字列をチェックするC++コードが多様であるかどうか


n個の小文字を含む文字列Sがあるとします。文字列が英語のアルファベットの連続した文字を持ち、各文字が1回だけ出現する場合、その文字列は多様性と呼ばれます。 (文字「a」と「z」は隣接していません)。多様性があるかどうかを確認する必要があります。

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

ステップ

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

sort the array S
flag := 1
for initialize i := 1, when i < size of S and flag is non-zero,
update (increase i by 1), do:
   if S[i] - S[i - 1] is not equal to 1, then:
      flag := 0
return (if flag is non-zero, then true, otherwise false)

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

#include <bits/stdc++.h>
using namespace std;
bool solve(string S){
   sort(S.begin(), S.end());
   int flag = 1;
   for (int i = 1; i < S.size() && flag; i++)
      if (S[i] - S[i - 1] != 1)
         flag = 0;
   return flag ? true : false;
}
int main(){
   string S = "fced";
   cout << solve(S) << endl;
}

入力

"fced"

出力

1

  1. C++でバイナリ文字列の1の間に0があるかどうかを確認します

    ここで、1つの興味深い問題が発生します。文字列の1の間に0があるかどうかを確認する必要があります。そうでない場合、文字列は有効であり、そうでない場合は無効です.3つの文字列があるとします- 10001111010 00001111100 01111101111 これらの3つの文字列のうち、1のストリーム内に0がないため、Bのみが有効です この問題を解決するために、文字列に存在する最初の1のインデックスを見つけ、最後の1のインデックスも見つけます。次に、これら2つのインデックスに0があるかどうかを確認し、ある場合はfalseを返し、そうでない場合はfalseを返します。 tr

  2. 文字列にC++のサブ文字列が含まれているかどうかを確認します

    ここでは、文字列ライブラリ関数を使用してC++で文字列を照合する方法を説明します。ここでは、find()操作を使用して、サブストリングのオカレンスをメインストリングに取得しています。このfind()メソッドは、文字列が見つかった最初の場所を返します。ここでは、このfind()関数を複数回使用して、すべての一致を取得しています。 アイテムが見つかった場合、この関数は位置を返します。ただし、見つからない場合は、string::nposを返します。 したがって、サブ文字列がメイン文字列に存在するかどうかを確認するには、find()の戻り値がstring::nposであるかどうかを確認する必要があ