ホームページ  >  記事  >  バックエンド開発  >  文字列が厳密にアルファベット順であるかどうかをチェックする C++ プログラム

文字列が厳密にアルファベット順であるかどうかをチェックする C++ プログラム

WBOY
WBOY転載
2023-09-05 17:01:261257ブラウズ

文字列が厳密にアルファベット順であるかどうかをチェックする C++ プログラム

n 個の小文字を含む文字列 S があるとします。次のルールに従っている場合、文字列は厳密にアルファベットの文字列です。

  • 空の文字列を T

  • に書き込み、次の 1 つのステップを実行します。 n 回;
  • i 番目のステップで、ラテンアルファベットの i 番目の小文字を取り出し、それを 文字列 T の左側または文字列 T の右側 (c はラテンアルファベットの i 番目の文字)。

S が厳密にアルファベット順の文字列順序であるかどうかを確認する必要があります。

問題カテゴリ

この問題を解決するには、文字列を操作する必要があります。プログラミング言語における文字列は、 特定の配列のようなデータ型に格納された文字のストリーム。多言語 文字列を特定のデータ型 (Java、C、Python など) および他のいくつかの言語として指定します。 文字列を文字配列 (C など) として指定します。文字列はプログラミングに役立ちます。 多くの場合、さまざまなアプリケーションで優先されるデータ型であり、入力データ型として使用されます。 そして出力します。文字列検索、部分文字列生成、 文字列除去操作、文字列変換操作、文字列置換操作、文字列 逆の操作など。文字列の仕組みについては、以下のリンクをご覧ください。 C/Cで使用されます。

https://www.tutorialspoint.com/cplusplus/cpp_strings.htm

https://www.tutorialspoint.com/cprogramming/c_strings。 htm

したがって、問題への入力が S = "ihfcbadeg" のようなものである場合、出力は True になります。

手順

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

len := size of S
for initialize i := len, when i >= 1, update (decrease i by 1), do:
   if S[l] is the i th character, then:
      (increase l by 1)
   otherwise when S[r] is the ith character, then:
      (decrease r by 1)
   Otherwise
      Come out from the loop
if i is same as 0, then:
   return true
Otherwise
   return false

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

#include <bits/stdc++.h>
using namespace std;
bool solve(string S){
   int len = S.size(), l = 0, r = len - 1, i;
   for (i = len; i >= 1; i--){
      if (S[l] - &#39;a&#39; + 1 == i)
         l++;
      else if (S[r] - &#39;a&#39; + 1 == i)
         r--;
      else
         break;
   }
   if (i == 0)
      return true;
   else
      return false;
}
int main(){
   string S = "ihfcbadeg";
   cout << solve(S) << endl;
}

入力

"ihfcbadeg"

出力

1

以上が文字列が厳密にアルファベット順であるかどうかをチェックする C++ プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。