和你在一起+字符串排序

和你在一起

ECNU-3530

  • 字符串的排序和数组的排序一样的
  • 注意本题的特殊情况,需要从大到小排序。
  • 而且需要注意543和5432这种情况,这里其实543更大,最后拼接的结果更大
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<map> 
#include<vector>
#include<unordered_map>
#include<bitset>
#include<sstream>
using namespace std;
const int maxn=22;
string as[maxn];
bool cmp(string a,string b){
	int lena=a.length();
	int lenb=b.length();
	int i=0,j=0;
	for(;i<lena&&j<lenb;){
		if(a[i]!=b[j]){
			return a[i]>b[j];
		}else{
			i++;
			j++;
		}
	}
	if(i==lena&&j==lenb){
		return true;
	}
	if(i<lena)//a更长 
		return false;
	else return true; 
}
int main(){
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
		int a;
		cin>>a;
		stringstream ss;
		ss<<a;
		as[i]=ss.str();
	}
	sort(as,as+n,cmp);
	for(int i=0;i<n;i++){
		cout<<as[i];
	}
	cout<<endl;
	return 0;
}
posted @ 2020-10-06 20:52  Garrett_Wale  阅读(103)  评论(0编辑  收藏  举报