#include <cstdio>
#include <vector>
#include <string.h>
#include <algorithm>
#include <iostream>
using namespace std;
bool cmp(string a, string b){
if(a.size()!=b.size()) return a.size() < b.size();
else return a < b; //string格式可以直接比较大小,比较的方式为字典序
}
int main(){
int N, C,n = 0, i = 0;
string str;
vector<string>vec;
while(~scanf("%d",&n)){
for(i = 0; i < n;i++){
cin >> str;
vec.push_back(str);
}
sort(vec.begin(),vec.end(),cmp);
for(vector<string>::iterator it = vec.begin();it!=vec.end();it++){
cout << *it << "\n";
// if(it!=vec.end()-1)printf("\n");
}
vec.clear();
}
return 0;
}
还请大家多多指出代码冗余之处以及题目的新思路。
转载请注明出处。