华科机考:大整数排序

时间限制:1秒  空间限制:32768K

题目描述

对N个长度最长可达到1000的数进行排序。

输入描述: 输入第一行为一个整数N,(1<=N<=100)。 接下来的N行每行有一个数,数的长度范围为1<=len<=1000。 每个数都是一个正数,并且保证不包含前缀零。

输出描述: 可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。

输入例子: 3

11111111111111111111111111111

2222222222222222222222222222222222

33333333

输出例子: 33333333

11111111111111111111111111111

2222222222222222222222222222222222

思路:写个cmp就行了,先按照长度来比较,如果一样的话再按照字典序来排

代码:

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;

int cmp(string str1,string str2){
   if(str1.size()!=str2.size())
      return str1.size()<str2.size();
   else
      return str1<str2;

}
int main(){
   int n,tmp;
   string str;
   vector<string> a;
   while(cin>>n){
   tmp=n;
   while(tmp--){
   cin>>str;
   a.push_back(str);
   }
   sort(a.begin(),a.end(),cmp);
   for(int i=0;i<n;i++)
    cout<<a[i]<<endl;
   a.clear();
   }
   return 0;
}
时间: 2024-10-08 10:44:48

华科机考:大整数排序的相关文章

华科机考:特殊排序

时间限制:1秒     空间限制:32768K 题目描述: 输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序. 输入描述: 输入第一行包括1个整数N,1<=N<=1000,代表输入数据的个数. 接下来的一行有N个整数. 输出描述: 可能有多组测试数据,对于每组数据, 第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序. 第二行将排序的结果输出. 输入例子: 4 1 3 4 2 输出例子: 4 1 2 3 这里要吐槽一下,只有一个数的时候需要输出-1诶,

华科机考:成绩排序

时间限制:1秒  空间限制:32768K 题目描述 有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出N个学生排序后的信息. 输入描述: 测试数据有多组,每组输入第一行有一个整数N(N<=1000),接下来的N行包括N个学生的数据. 每个学生的数据包括姓名(长度不超过100的字符串).年龄(整形数).成绩(小于等于100的正数). 输出描述: 将学生信息按成绩进行排序,成绩相同的则按姓名的字母序进行排序. 然后输出

华科机考:字符串连接

输入描述: 每一行包括两个字符串,长度不超过100. 输出描述: 可能有多组测试数据,对于每组数据, 不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来. 输出连接后的字符串. 输入例子: abc def 输出例子: abcdef 要求:1.无冗余地接受两个字符串 2.无冗余的连接 显然像以前那样随便定义一个固定大小的数组是不行的(这是大一养成的恶习)o(╯□╰)o 当然用c++的string类,实现这两点非常简单. 代码: #include <iostream> u

华科机考:排序

时间限制:1秒     空间限制:32768K 题目描述: 对输入的n个数进行排序并输出. 输入描述:     输入的第一行包括一个整数n(1<=n<=100).     接下来的一行包括n个整数. 输出描述:     可能有多组测试数据,对于每组数据,将排序后的n个整数输出,每个数后面都有一个空格.     每组测试数据的结果占一行. 输入例子: 4 1 4 3 2 输出例子: 1 2 3 4 思路:排序嘛,不想用sort()的话,就谁便写一个冒泡算了 代码: #include <io

题目1190:大整数排序

时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4581 解决:2060 题目描述: 对N个长度最长可达到1000的数进行排序. 输入: 输入第一行为一个整数N,(1<=N<=100). 接下来的N行每行有一个数,数的长度范围为1<=len<=1000. 每个数都是一个正数,并且保证不包含前缀零. 输出: 可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行. 样例输入: 3 11111111111111111111111111

华科机考:最小年龄的3个职工

时间限制:1秒     空间限制:32768K 题目描述 职工有职工号,姓名,年龄.输入n个职工的信息,找出3个年龄最小的职工打印出来. 输入描述: 输入第一行包括1个整数N,1<=N<=30,代表输入数据的个数. 接下来的N行有N个职工的信息: 包括职工号(整数), 姓名(字符串,长度不超过10), 年龄(1<=age<=100). 输出描述: 可能有多组测试数据,对于每组数据, 输出结果行数为N和3的较小值,分别为年龄最小的职工的信息. 关键字顺序:年龄>工号>姓名

1190.大整数排序

题目描述: 对N个长度最长可达到1000的数进行排序. 输入: 输入第一行为一个整数N,(1<=N<=100).接下来的N行每行有一个数,数的长度范围为1<=len<=1000.每个数都是一个正数,并且保证不包含前缀零. 输出: 可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行. 样例输入: 3 11111111111111111111111111111 2222222222222222222222222222222222 33333

大整数排序

题目描述 对N个长度最长可达到1000的数进行排序. 输入描述: 输入第一行为一个整数N,(1<=N<=100). 接下来的N行每行有一个数,数的长度范围为1<=len<=1000. 每个数都是一个正数,并且保证不包含前缀零. 输出描述: 可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行. 分析 位数不相等时,位数少的小 位数相等时,字符串排序结果和数的排序结果相同 #include <iostream> #include

华科机考:打印日期

时间限制:1秒       空间限制:32768K 题目描述 给出年分m和一年中的第n天,算出第n天是几月几号. 输入描述: 输入包括两个整数y(1<=y<=3000),n(1<=n<=366). 输出描述: 可能有多组测试数据,对于每组数据, 按 yyyy-mm-dd的格式将输入中对应的日期打印出来. 输入例子: 2000 3 2000 31 2000 40 2000 60 2000 61 2001 60 输出例子: 2000-01-03 2000-01-31 2000-02-0