zoukankan      html  css  js  c++  java
  • 大整数排序

    题目描述

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

    输入描述:

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

    输出描述:

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

    分析

    1. 位数不相等时,位数少的小
    2. 位数相等时,字符串排序结果和数的排序结果相同
    #include <iostream>
    #include <string>
    #include <algorithm>
    using namespace std;
    
    bool comp(string a,string b)
    {
        if(a.size() == b.size()){
            return a < b;
        }
        else return a.size() < b.size();
    }
    
    int main(){
        int n;
        string s[100];
        while(cin >> n){
            for(int i = 0; i < n; i++){
                cin >> s[i];
            }
            sort(s, s + n, comp);
            for(int i = 0; i < n; i++){
                cout << s[i] << endl;
            }
        }
        return 0;
    }
    
  • 相关阅读:
    [模板] 文艺平衡树
    [模板]平衡树splay
    [ZJOI2015]诸神眷顾的幻想乡
    [HAOI2016]找相同字符
    SP8093 JZPGYZ
    SP1812 LCS2
    SP1811 LCS
    AHOI2013 差异
    TJOI2015 弦论
    工艺(SAM)
  • 原文地址:https://www.cnblogs.com/zhuobo/p/10249713.html
Copyright © 2011-2022 走看看