拼接數字(知識點:string的使用和sort的cmp)
拼接數字
Time Limit: 2000/1000ms (Java/Others)
Problem Description:
給定一個正整數陣列,現在把陣列所有數字都拼接成一個大數字,如何使得拼接後的數字最小。
Input:
輸入包含多組測試資料,每組資料首先輸入一個整數n(1<=n<=10000),接下來有n個整數a[i](1<=a[i]<=10^5);
Output:
對於每組資料,輸出拼接後最小的數字。
Sample Input:
3 3 32 321
Sample Output:
321323
程式碼:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
bool cmp(int a,int b)//注意:a是陣列中的後一個元素,b是陣列中的前一個元素,return true代表交換這兩個元素
{
string aa;//定義一個string
string bb;
while(a)
{
aa+=a%10;//string不能用類似陣列x[0] = y這種方法賦值,只能用加法,如給一個string x加上一個元素y,則x+=y
a/=10;
}
while(b)
{
bb+=b%10;
b/=10;
}
reverse(aa.begin(),aa.end());//對string陣列進行翻轉。
reverse(bb.begin(),bb.end());
return (bb+aa) > (aa+bb);
}
int main()
{
int n;
while(~scanf("%d",&n))
{
int a[n];
for(int i = 0;i < n;i++)
scanf("%d",&a[i]);
sort(a,a+n,cmp);
for(int i = 0;i < n;i++)
printf("%d",a[i]);
printf("\n");
}
return 0;
}
相關文章
- String知識點整理
- 知識點5:神奇數字(magic number)
- 浮點數小知識點
- 世界是數字的重點讀書筆記(計算機科普知識)筆記計算機
- var、let和const的知識點
- 圖資料和知識圖譜,數字化轉型的新引擎
- margin的知識點
- dotnet 6 使用 string.Create 提升字串建立和拼接效能字串
- 原始碼|String拼接操作”+”的優化?原始碼優化
- Java 中拼接 String 的 N 種方式Java
- JS知識點:ES6 中常見的知識點JS
- 面試必知的web知識點面試Web
- vue常用的知識點Vue
- 遺漏的知識點
- 需要攻破的知識點
- VEEAM的小知識點
- JavaScript陣列、字串、數學函式的知識點JavaScript陣列字串函式
- Flutter 上預設的文字和字型知識點Flutter
- FPGA數碼管知識點整理FPGA
- iOS 需要使用卻不常用的知識點iOS
- 【Emmet 的使用手冊(知識點超全版本)】
- 關於SAP ABAP字元變數和字串變數字元個數的一個知識點,和一個血案字元變數字串
- HTTP和AJAX重點知識HTTP
- linux命令和知識點Linux
- laravel重要概念和知識點Laravel
- 近一萬字的ES6語法知識點補充
- 一萬三千字的HashMap面試必問知識點詳解HashMap面試
- 【知識點】 gcc和g++的聯絡和區別GC
- java知識:關於String和StringBuffer(轉)Java
- 彩票的數學知識
- 初識python必知的6個知識點Python
- Promise的10大知識點!Promise
- 圖片的基本知識點
- Git的11個知識點Git
- 面試需要掌握的知識點面試
- 記錄的小知識點
- Redis常考的知識點Redis
- overflow的勁爆知識點