ホームページ > バックエンド開発 > C++ > 文字列内の大文字が正しく使用されているかどうかを確認する

文字列内の大文字が正しく使用されているかどうかを確認する

王林
リリース: 2023-08-28 20:57:10
転載
1410 人が閲覧しました

###############問題文###

大文字または小文字のアルファベットを含む文字列 'str' が与えられます。文字列内の大文字の使用が正しいかどうかを確認する必要があります。 文字列内の大文字が正しく使用されているかどうかを確認する

文字列内で大文字を正しく使用する方法は次のとおりです。

最初の文字のみが大文字の場合、他の文字は小文字になります。

    文字列のすべての文字が小文字の場合。
  • 文字列のすべての文字が大文字の場合。
  • ###例### ###入力### リーリー ###出力### リーリー
  • 説明
  • の中国語訳は次のとおりです:

    説明

  • 「Hello」では、最初の文字のみが大文字で、他の文字は小文字であるため、有効な文字列です。
###入力### リーリー ###出力### リーリー

説明

の中国語訳は次のとおりです:

説明

「hello」文字列では、すべての文字が小文字であるため、有効な文字列です。

###入力### リーリー ###出力### リーリー

説明

の中国語訳は次のとおりです:

説明

文字列「heLLO」では、最初の文字は小文字ですが、最後の 3 文字は大文字であるため、この文字列は無効です。

方法 1

このメソッドでは、最初の文字が小文字の場合、文字列のすべての文字が小文字であるかどうかを確認し、ブール値を返します。最初の文字が大文字の場合、他のすべての文字が大文字か小文字かをチェックし、ブール値を返します。

###アルゴリズム###

ステップ 1

- isLower() 関数を定義します。この関数は 1 つの文字をパラメータとして受け取り、その文字が小文字であるかどうかに関係なくブール値を返します。 「character-A」が 32 以上の場合、その文字は小文字です。

ステップ 2

- isLower() 関数と同じように isUpper() 関数を定義し、文字が大文字かどうかに基づいてブール値を返します。

ステップ 3

- isValidUpper() 関数を定義します。この関数は、文字列に有効な大文字がすべて含まれているかどうかを確認します。

ステップ 4
    - isValidUpper() 関数で、isLower() 関数を使用し、最初の文字が小文字かどうかを確認します。 「はい」の場合は、ループと isUpper() 関数を使用して、他のすべての文字をチェックします。大文字の文字がある場合は false を返します。それ以外の場合、すべての文字が小文字であれば true を返します。
  • ステップ 5
  • - 最初の文字が大文字の場合は、2 つのケースを確認する必要があります。 1 つ目のケースは、すべての文字を大文字にすることも、最初の文字以外のすべてを小文字にすることもできます。
  • ステップ 5.1
  • - 変数「totalUpper」を定義し、1 に初期化します。
  • ステップ 5.2
  • -文字列内の大文字の合計数を数えます。
  • ステップ 5.3
  • - 大文字の合計数が 1 または文字列の長さに等しい場合は true を返し、文字列に有効な大文字が含まれていることを示します。それ以外の場合は false を返します。
  • ###例### リーリー ###出力### リーリー

  • 時間計算量

    - O(N)。文字列を走査するためにループを使用する必要があるためです。 isLower() 関数と isUpper() 関数の時間計算量は O(1) です。

  • スペースの複雑さ

    - 余分なスペースを使用しないため、O(1)。

  • 方法 2
  • 次のメソッドでは、最初のメソッドのコードを最適化します。ここでは、最初の 2 文字を除く、文字列内の隣接する 2 つの要素の大文字と小文字が同じかどうかをチェックすることで、文字列に有効な大文字が含まれているかどうかを確認します。 ###アルゴリズム###

ステップ 1

-for ループを使用して、文字列の最初のインデックスから最後のインデックスまで繰り返します。

  • ステップ 2

    - for ループで、現在の文字が大文字で前の文字が小文字の場合、有効な文字列ではないため false を返します。

  • ステップ 3

    -現在の文字が小文字で、前の文字が大文字の場合は、以下の手順に従います。

ステップ 3.1

- 前の文字が文字列の 0 番目のインデックスまたは最初の文字にあるかどうかを確認し、for ループを続行します。

ステップ 3.2
    -前の文字が最初の文字でない場合は、false を返します。
  • ###例### リーリー ###出力### リーリー

  • 時間計算量

    - 文字列を走査するためにループを使用する必要があるため、O(N)。

  • スペースの複雑さ

    - 余分なスペースを使用しないため、O(1)。

    ###結論は###
  • このチュートリアルでは、ユーザーは文字列に有効な大文字が含まれているかどうかを確認する方法を学習しました。私たちは 2 つの異なる方法を学びました。最初のアプローチでは問題を 3 つの部分に分割し、2 番目のアプローチでは隣接する要素の大文字と小文字をチェックします。ただし、両方のコードの時間と空間の複雑さは似ていますが、2 番目の方法のコードの方が読みやすくなっています。

以上が文字列内の大文字が正しく使用されているかどうかを確認するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート