設有n個正整數,將他們連線成一排,組成乙個最大的多位整數。
如:n=3時,3個整數13,312,343,連成的最大整數為34331213。
如:n=4時,4個整數7,13,4,246連線成的最大整數為7424613。
有多組測試樣例,每組測試樣例包含兩行,第一行為乙個整數n(n<=100),第二行包含n個數(每個數不超過1000,空格分開)。
每組資料輸出乙個表示最大的整數。示例1
複製
212 123
47 13 4 246
複製
123127424613
開始看到這道題的時候想的是如何比較數字的大小,但是這樣做是非常麻煩的。在這裡我們用的是思路是字串的氣泡排序。以下是一些需要用到的知識點。
1.vector,c++中非常有用的容器,可以存放各個型別的物件,在這裡我們用來存放string型別物件。vector的一些用法
vectortest;
vectortest;
test.push_back(1);
test.push_back(2);//把1和2壓入vector,這樣test[0]就是1,test[1]就是2
2.對於兩個數的組合,我們想要乙個最大的整數,我們需要的是將第一位更大的放在前面的位置。這正是字串比較的規則,兩個字串比較式,會逐個比較字元的ascii值,分出大小後,對後面的不再比較
。例如:
string str1="abc";
string str2="aac";
'a'的ascii值為97,'a'的ascii值為65,所以str1>str2
通常我們會使用到字串比較函式strcmp(在之後會詳解)
下面是詳細**
#include#include#include#includeusing namespace std;
bool fun(string a,string b)
int main ()
for(int j=0;j::iterator item=string1.begin();
while(item!=string1.end())
}
牛客網字串識別數字
原題是為了識別數字,實現如下 include include include using namespace std class solution bool isnumberic const char str int positionofe 1 int positionofpoint 1 int n...
牛客網 字串的統計字串
牛客網 題目描述 給定乙個字串str,返回str的統計字串。例如 aaabbbbcccd 的統計字串為 a 3 b 4 c 3 d 1 輸入字元長度都大於1 解題思路 1.第一種方法輸入的是 aaa n 這種字元。因此我們將當前字元cur指向首字元,從1 字串長度的範圍內開始遍歷判斷當前字元cur是...
牛客網 數串
設有n個正整數,將他們連線成一排,組成乙個最大的多位整數。如 n 3時,3個整數13,312,343,連成的最大整數為34331213。如 n 4時,4個整數7,13,4,246連線成的最大整數為7424613。有多組測試樣例,每組測試樣例包含兩行,第一行為乙個整數n n 100 第二行包含n個數 ...