C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++の番号のリストから最大の辞書番号を作成するプログラム


numsと呼ばれる数値のリストがあるとすると、その順序を並べ替えて可能な限り最大の数値を形成し、それを文字列として返す必要があります。

したがって、入力がnums =[20、8、85、316]の場合、出力は「88531620」になります。

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

  • アレイの温度を定義する
  • 各アイテムiの数:
    • iを文字列としてtempに挿入
  • 辞書式順序に基づいて配列の温度を並べ替えます(連結bがb連結aより大きいかどうかにかかわらず、2つの文字列a、bを確認します)
  • temp内の各文字列に対して:
    • res:=res concatenate s
  • return res

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

#include <bits/stdc++.h>
using namespace std;

static bool cmp(string a, string b) {
   return (a + b) >= (b + a);
}
string solve(vector<int>& nums) {
   vector<string> temp;
   for (int i : nums) {
      temp.push_back(to_string(i));
   }
   sort(temp.begin(), temp.end(), cmp);
   string res;
   for (string s : temp) {
      res += s;
   }
   return res;
}

int main(){
   vector<int> v = {20, 8, 85, 316};
   cout << solve(v);
}

入力

{20, 8, 85, 316}

出力

88531620

  1. Pythonの2つの数値リストから最大距離ペアを見つけるプログラム

    AとBという2つの番号のリストがあり、それらの長さが同じであるとします。すべての0≤i

  2. Python-与えられた数のリストから可能な最大数

    この記事では、与えられた数のリストから可能な最大数を見つける方法を学びます。問題を解決するための2つの異なる方法を見ていきます。以下の手順に従って問題を解決してください。 順列メソッドのitertoolsモジュールをインポートします。 番号と空のリストでリストを初期化します。 リストの順列を繰り返し処理します。 すべての組み合わせを結合し、結果を空のリストに追加します。 maxメソッドとキーをintとして使用して結果から最大数を見つけます。 文字列を整数に変換して出力します。 例 コードを見てみましょう。 # importing the module import itertools