ホームページ > バックエンド開発 > C++ > 文字の合計が N に等しい、辞書編集上最大の文字列

文字の合計が N に等しい、辞書編集上最大の文字列

PHPz
リリース: 2023-09-17 15:45:15
転載
1394 人が閲覧しました

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

正の整数が与えられます。文字列内のすべての文字の合計が num に等しく、文字列が辞書編集順で最大になるような、小文字で構成される文字列を見つける必要があります。ここで、「a」 = 1、「b」 = 2、「c」 = 3、「d」 = 4、…、「z」 = 26 となります。 文字の合計が N に等しい、辞書編集上最大の文字列

最大の辞書文字列を作成するには、文字列の先頭に「z」文字を使用する必要があります。最後に、num % 26 値に基づいて最後の文字を使用する必要があります。

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

説明

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

説明

'zd' は、文字合計が 30 (z = 26 d = 4) の最大の辞書編集文字列です。

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

説明

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

説明

'c' は 3 そのものを表します。

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

説明

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

説明

各文字「zzzzz」の値の合計は 130 です。

方法1

このメソッドは while ループを使用して結果文字列を作成します。数値の値が 26 以上になるまで繰り返し、各繰り返しで文字列に「z」を追加し、数値から 26 を減算します。最後に、残りに基づいて文字列に文字を追加します。

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

ステップ 1

- 数値をパラメーターとして渡して、findString() 関数を実行します。

ステップ 2

- 文字列型の結果変数を空の文字列で初期化し、結果文字列を保存します。

ステップ 3

- while ループを使用して、「num」の値が 26 以上になるまで繰り返します。

ステップ 4
    - while ループで、結果の文字列に文字「z」を追加します。
  • ステップ 5
  • - 数値から 26 を引きます。
  • ステップ 6
  • - while ループの反復が完了したら、num の値が 0 より大きいかどうかを確認します。その場合は、「num」変数の値に基づいて最後の文字を文字列に追加します。
  • ステップ 7
  • - 結果の文字列を返します。
  • Example

    の中国語訳は次のとおりです:
  • Example
  • リーリー ###出力### リーリー

    時間計算量
  • - O(num)。while ループは num/26 回実行されるため、O(num) に等しい。
  • 空間複雑度
  • - O(num)、文字列には最大 (num/26 1) 文字を含めることができるため。
  • 方法 2

  • このメソッドでは、String() コンストラクターを使用して長さ N の文字列を作成します。モジュロ演算子と除算演算子を使用して、文字列内の z の合計数を取得します。
###アルゴリズム###

ステップ 1

- 「totalZ」変数を定義し、num/26 で初期化します。

  • ステップ 2 - 「rem」変数を定義し、「num%26」で初期化します。

  • ステップ 3 - これを使用して、最初の引数として 'totalZ' を、2 番目の引数として 'z' を渡し、string() コンストラクターを作成します。文字。同時に、それを「結果」文字列に追加します。

ステップ 4

- 「rem」の値が 0 に等しくない場合は、「rem」変数の値に基づいて文字列に最後の文字を追加します。

  • ステップ 5

    - 「結果」文字列を返します。

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

    Example リーリー ###出力### リーリー

  • 時間計算量

    - O(num) 文字列コンストラクターとして、totalz 文字を含む文字列を作成します。

  • 空間複雑度

    - O(num)

    ###結論は### 数値を文字列に変換する 2 つの方法を学びました。最初のメソッドでは while ループを使用し、2 番目のメソッドでは string() コンストラクターを使用しました。ただし、どちらの方法も空間と時間の計算量は同じですが、2 番目の方法の方が読みやすくなっています。

以上が文字の合計が N に等しい、辞書編集上最大の文字列の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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