卡片组成最大数
题目描述:
小组中每位都有一张卡片,卡片上是 6 位内的正整数,将卡片连起来可以组成多种数字,计算组成的最大数字。
输入描述:
“, ”号分割的多个正整数字符串,不需要考虑非数字异常情况,小组最多 25 个人
输出描述:
最大的数字字符串
示例 1
输入:
22,221
输出:
22221
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
bool Compare(int a,int b){
if(a>b) return true;
return false;
}
void split(string str,vector<int>& output,string patten){
str+=patten;
for(size_t i=0;i<str.size();++i){
string::size_type pos=str.find(patten,i);
int temp=atoi(str.substr(i,pos-i).c_str());
output.push_back(temp);
i=pos+patten.size()-1;
}
}
int main(){
string str="";
while(getline(cin,str)){
if(str==""){
cout<<"No input"<<endl;
continue;
}
vector<int> input;
input.clear();
split(str,input,",");
sort(input.begin(),input.end(),Compare);
for(size_t i=0;i<input.size();++i){
cout<<input[i];
}
cout<<endl;
}
return 0;
}