シリーズ25が提供する意味:最小数は、アレイ状に配置します

私は数を得た最初のアイデアは、右の数字は文字列になり、その後、文字列を比較します。行うには、ソートの機能であることが判明した答えを読んで、ソート機能をソートすることは本当に万能薬です。サイズの2つの文字列を比較し、私の考えは、その大きさを比較して、文字列から要素を取らなければならないし、答えのアプローチは、直接、文字列、文字列の特性の使用を比較することですされています。もう一つの問題は、書面でのコメントは、ここで再び、なぜ静的メンバ関数を定義する必要があり、何の静的データメンバが存在しないということですか?ここで使用した場合、唯一の説明は、それがクラスに属し、静的メンバ関数は、任意のオブジェクトに属していないということです。

1の#include <iostreamの>
 2の#include < ストリング >
 3の#include <ベクトル>
 4の#include <アルゴリズム>
 5  // の#include <sstream提供> 
6  使って 名前空間STDを、
7  クラスソリューション{
 8  公共9       PrintMinNumber(ベクトル< INT > 番号){
 10          RES。
11          であれば(numbers.size()<= 0// 判断传来的ベクター是否为空
12              戻りRES。
13          //文字列の大= 0; 
14          / * 
15          のための(I = 0 int型、iが++; iがnumbers.size()<)
 16          {
 17              列CUR = to_stringに(番号[I])を、
18              BOOL SIG = comparetwo(CUR、RES)。
19              IF(SIG)
 20の                 RES = CUR + RES。
21              他の
 22                 のRES =のRES + CUR。
23          }
 24          * / 
25          ベクター< ストリング > ST。
26          のためにint型 iは= 0 iが++; iがnumbers.sizeを()< 27         {
 28               CUR = to_stringに(番号[I])。
29              st.push_back(CUR)。
30          }
 31          ソート(st.begin()、st.end()、comparetwo)。
32  
33          のためにint型 iは= 0 ; iはst.sizeを()<; iは++ 34          {
 35              RES = RES + ST [i]は、
36          }
 37の         リターンRES。
38  
39      }
 40      / * 
41      BOOL comparetwo(列A、列B)
 42      {
 43         用(INT I = 0、J = 0; iはa.size()、Jが<b.size()<;)
 44          {
 45              IF([I]> B [J])
 46                  リターン偽。
47              他の
 48                  の場合([i]が<B [J])
 49                       リターンはtrue。
50                  他の
 51                  {
 52                      IF(![I + 1] = '\ 0')
 53                          I ++。
54                      (B [J + 1] = '\ 0'!)であれば
 55                             J ++;
56                  }
 57          }
 58         真の復帰に;
 59      }
 60      * / 
61      静的 BOOLの comparetwo(文字列 Aは、文字列 B)// 静的追加されることはありません開始、ラインの機能の間違ったソートが、なぜあなたは、静的追加したいん報告?
62は     、{
 63である         文字列 TEST1 = A + 、B
 64          文字列 TEST2 = B + A;
 65          IF(TEST1> TEST2)
 66              リターン falseに67          他の
68          {
 69              リターン trueに;
 70          }
 71です     }
72  }。
73  のint main()の
 74  {
 75      ソリューションので、
76      ベクター< INT >テスト{ 35142 }。
77      COUT << so.PrintMinNumber(テスト)<< ENDL。
78      リターン 0 79 }

 

おすすめ

転載: www.cnblogs.com/neverland0718/p/11166039.html
おすすめ