[Python]CCF——数字排序(201503-2)

数字排序

一、问题描述

问题描述
   给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。
输入格式
输入的第一行包含一个整数n,表示给定数字的个数。
  第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。
输出格式
  输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大的。
样例输入
12
5 2 3 3 1 3 4 2 5 2 3 5
样例输出
样例输出
3 4
2 3
5 3
1 1
4 1
评测用例规模与约定
1 ≤ n ≤ 1000,给出的数都是不超过1000的非负整数。

# 数字排序
n = int(input())
a = list(map(int,input().split()))
s = {}
for i in a:
    s[i] = a.count(i)
sort_s = sorted(s.items(),key= lambda x:(-x[1],x[0]))
for i in sort_s:
    print(i[0],i[1])

分析

利用列表来储存数据,并用字典来记录每个数字出现的次数
对字典进行排序:根据value降序然后再对key升序,即得到想要的顺序了。

原文地址:https://www.cnblogs.com/SavvyM/p/11778493.html

时间: 2024-08-03 23:49:04

[Python]CCF——数字排序(201503-2)的相关文章

ccf数字排序

问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出. 输入格式 输入的第一行包含一个整数n,表示给定数字的个数. 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数. 输出格式 输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数.按出现次数递减的顺序输出.如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大的. 样例输入 125 2 3 3 1 3 4 2 5 2 3 5 样例输出 3 42 35 31 14 1 评测用例规模

CCF 201503-2 数字排序

CCF 201503-2 数字排序 思路:数组下标作为输入的整数,数组元素作为其下标整数出现的次数. 关键在输出时的方法,先倒序循环出现的次数最大出现次数不过1000次,再从小到大循环下标,有出现次数与数组元素相同的就输出 下标和出现次数.这样就满足了题中要求. 1 #include<iostream> 2 #include<cstring> 3 #include<vector> 4 using namespace std; 5 int arr[1001];///数据不

CCF系列之数字排序(201503-2)

问题描述试题编号: 201503-2试题名称: 数字排序时间限制: 1.0s内存限制: 256.0MB问题描述: 问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出.输入格式 输入的第一行包含一个整数n,表示给定数字的个数. 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数.输出格式 输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数.按出现次数递减的顺序输出.如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大的.样例输入

Python实现各种排序算法的代码示例总结

Python实现各种排序算法的代码示例总结 作者:Donald Knuth 字体:[增加 减小] 类型:转载 时间:2015-12-11我要评论 这篇文章主要介绍了Python实现各种排序算法的代码示例总结,其实Python是非常好的算法入门学习时的配套高级语言,需要的朋友可以参考下 在Python实践中,我们往往遇到排序问题,比如在对搜索结果打分的排序(没有排序就没有Google等搜索引擎的存在),当然,这样的例子数不胜数.<数据结构>也会花大量篇幅讲解排序.之前一段时间,由于需要,我复习了

Python学习——数据排序方法

Python对数据排序又两种方法: 1. 原地排序:采用sort()方法,按照指定的顺序排列数据后用排序后的数据替换原来的数据(原来的顺序丢失),如: >>> data1=[4,2,6,432,78,43,22,896,42,677,12] >>> data1.sort() >>> data1 #原来的顺序被替换 [2, 4, 6, 12, 22, 42, 43, 78, 432, 677, 896] 2. 复制排序:采用sorted()内置函数,按照

数组值数字+中文,以数字排序

数组中文加数字 以数字排序 $a['4']='123区'; $a['5']='3区'; $a['6']='32区'; $a['7']='8区'; foreach ($a as $k => $v) { preg_match('/\d+/',$v,$arr); if(!empty($arr)){ $name[$k] = $arr[0]; }else{ $name[$k] = $v; } } array_multisort($name,SORT_ASC,SORT_NUMERIC,$a); var_du

输入三个数字排序显示

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>输入三个数字排序显示</title></head><body><p>第一个输入框</p><input type="text" id="a1"/> <p>

数字排序

题编号:    201503-2 试题名称:    数字排序时间限制:    1.0s内存限制:    256.0MB问题描述: 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出.输入格式: 输入的第一行包含一个整数n,表示给定数字的个数. 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数.输出格式: 输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数.按出现次数递减的顺序输出.如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大的

python 猜数字游戏

这里来写一个python猜数字的游戏. #coding:utf-8 import random real_num = random.randrange(10) retry_count = 0 while retry_count <= 2 :     guess_num = raw_input("Please guess the real num:").strip()     if len(guess_num) ==0:         continue     if guess_