拼接數字(知識點: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知識點整理
- dotnet 6 使用 string.Create 提升字串建立和拼接效能字串
- var、let和const的知識點
- 浮點數小知識點
- 原始碼|String拼接操作”+”的優化?原始碼優化
- Java 中拼接 String 的 N 種方式Java
- app的知識點APP
- 圖資料和知識圖譜,數字化轉型的新引擎
- String/StringBuilder字串拼接操作UI字串
- JS知識點:ES6 中常見的知識點JS
- 初識python必知的6個知識點Python
- vue常用的知識點Vue
- 遺漏的知識點
- VEEAM的小知識點
- 需要攻破的知識點
- 數字裡的點號和分號
- iOS 需要使用卻不常用的知識點iOS
- 【Emmet 的使用手冊(知識點超全版本)】
- Flutter 上預設的文字和字型知識點Flutter
- 【知識點】 gcc和g++的聯絡和區別GC
- 關於SAP ABAP字元變數和字串變數字元個數的一個知識點,和一個血案字元變數字串
- 【Lintcode】1025. Custom Sort String
- HTTP和AJAX重點知識HTTP
- 面試必知的web知識點面試Web
- 電商行業客戶運營知識庫:構建數字化知識庫的探索行業
- 近一萬字的ES6語法知識點補充
- 一萬三千字的HashMap面試必問知識點詳解HashMap面試
- FPGA數碼管知識點整理FPGA
- 彩票的數學知識
- java NIO和Concurrent包的一些知識點Java
- 前端面試知識點(五)--- BFC的建立和作用前端面試
- 圖片的基本知識點
- Git的11個知識點Git
- 記錄的小知識點
- Promise的10大知識點!Promise
- Redis常考的知識點Redis
- web開發知識體系中必要的知識點Web
- Redux 知識點梳理和實踐Redux