n 個の小文字を含む文字列 S があるとします。次のルールに従っている場合、文字列は厳密にアルファベットの文字列です。
空の文字列を T
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] - 'a' + 1 == i) l++; else if (S[r] - 'a' + 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 サイトの他の関連記事を参照してください。