ホームページ  >  記事  >  バックエンド開発  >  文字列内のすべての文字を増加または減少させることによって等しくできるかどうかをチェックします

文字列内のすべての文字を増加または減少させることによって等しくできるかどうかをチェックします

WBOY
WBOY転載
2023-09-11 11:25:02848ブラウズ

文字列内のすべての文字を増加または減少させることによって等しくできるかどうかをチェックします

この問題では、増減演算によって文字列のすべての文字を等しくできるかどうかを確認する必要があります。 ASCII 値に基づいて各文字の重みを取得し、合計の重みを使用してすべての文字を等しくできるかどうかを確認できます。

問題ステートメント – 小文字のアルファベットを含む長さ N の文字列 str が与えられます。 2 つの文字のいずれかを選択し、1 つの文字を増やし、もう 1 つの文字を 1 減らすことで、文字列内のすべての文字を等しくできるかどうかを確認する必要があります。可能であれば「はい」を出力し、そうでない場合は「いいえ」を出力します。

例例

入力– str = 'aedb

出力-str = 'aedb

説明 - 「a」は 2 増やすことができ、「e」は 2 減らすことができます。同時に、「b」を 1 ずつ増加させ、「d」を 1 ずつ増加させることができます。したがって、結果の文字列は「cccc」になる可能性があります。

入力– str = 'abd'

出力-「いいえ」

説明 – 増減演算によって文字列のすべての文字を等しくすることはできません

入力-「g」

出力 - 'はい'

説明 – 文字列には単一の文字しか含まれていないため、すべての文字列文字はすでに等しいです

方法 1

このメソッドでは、文字列の合計文字重みを計算します。文字の重みは、「a」 = 1、「b」 = 2、「c」 = 3、…、「z」 = 26 として定義されます。したがって、合計の重みを文字列の長さで割ると、1 つの文字を増やし、別の文字を減らすことで、文字列のすべての文字が等しくなると言えます。

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

    「len」変数を定義し、size() メソッドを使用して文字列のサイズを保存します。
  • 「totalWeight」変数を定義して、指定された文字列のすべての文字の合計の重みを格納します
  • 各文字の ASCII コードを使用して特定の文字の重みを取得し、それを「totalWeight」変数に追加します。
  • 「totalWeight」の値が「len」で割り切れる場合は true を返します。それ以外の場合は false を返します。
  • ###例### リーリー ###出力### リーリー
  • 文字列を反復処理するため、時間計算量 - O(N)。

一定空間を使用するため、空間複雑度 - O(1)。

###結論は###

文字の ASCII 値を増減することで、文字列のすべての文字が等しいかどうかを確認する方法を学びました。この問題を「総重量」という観点から解決します。ユーザーは、結果の文字列の検索を試みることもできます。結果の文字列を見つけるには、(totalWeight/len) に対応する ASCII 値を見つけて、指定された文字列に「len」文字を追加します。

以上が文字列内のすべての文字を増加または減少させることによって等しくできるかどうかをチェックしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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