zoukankan      html  css  js  c++  java
  • 每日一题——统计数字

    统计数字

    本题来源:牛客网
    题目链接:https://ac.nowcoder.com/acm/problem/16643
    难度星级:2星
    主要考察:排序、字典

    这是一道简单(相对于部分语言来说)的排序的题目,先来看题

    时间限制:C/C++ 1秒,其他语言2秒
    空间限制:C/C++ 262144K,其他语言524288K
    64bit IO Format: %lld

    题目描述

    某次科研调查时得到了n个自然数,每个数均不超过1500000000((1.5*10^9))。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。

    输入描述:

    第1行是整数n,表示自然数的个数。
    第2~n+1行每行一个自然数。

    输出描述:

    输出m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。

    示例1

    输入
    8
    2
    4
    2
    4
    5
    100
    2
    100
    
    输出
    2 3
    4 2
    5 1
    100 2
    

    备注:

    40%的数据满足:1 ≤ n ≤ 1000
    80%的数据满足:1 ≤ n ≤ 50000
    100%的数据满足:1 ≤ n ≤ 200000,每个数均不超过1500000000((1.5*10^9)

    题目分析

    这道题要考虑的有两个点,一是统计输入的所有自然数,二是输出的时候要按照数字大小升序输出。
    考虑到这两点,我决定用python来AC这道题。

    具体解决

    分别解决这两个点

    统计输入的所有自然数

    这个很简单,只要开一个字典,将数字作为键,次数作为值就好了

    number = {}
    for i in range(n):
        x = int(input())
        if x in number.keys():
            number[x] += 1
        else:
            number[x] = 1
    

    输出的时候要按照数字大小升序输出

    我这里用的方法是把所有的键存入一个列表中,再将列表排序,由于python列表有排序用的sort()方法,所以直接调用就好了,如果是其他语言的话,就这给的时间限制,我估计无论用什么排序应该也都不会超时吧。当然肯定也不止这种方法,随意发挥就好。排序完后依次输出就好了。

    key = list(number.keys())
    key.sort()
    for i in key:
        print("{} {}".format(i, number[i]))
    

    实现代码(python3.9)

    n = int(input())
    number = {}
    for i in range(n):
        x = int(input())
        if x in number.keys():
            number[x] += 1
        else:
            number[x] = 1
    key = list(number.keys())
    key.sort()
    for i in key:
        print("{} {}".format(i, number[i]))
    

    提交结果

    over!

    本博客同时发表在CSDN中,链接:https://blog.csdn.net/tangkcc/article/details/113695923

    能力有限,如有错误之处,敬请指正!

  • 相关阅读:
    pip的认识
    java动态代理
    hadoop集群环境配置成功与否查看方法
    input输入框只能输入数字、字母相关组合
    ASP.NET Core MVC上传、导入、导出知多少
    MQTT
    高德地图
    油猴脚本
    excel中001如何输入
    WebPageBase.IsSectionDefined(String) 方法
  • 原文地址:https://www.cnblogs.com/tangkc/p/14377975.html
Copyright © 2011-2022 走看看