一副扑克牌有52张牌,分别是红桃,黑桃,方片,梅花各13张,不包含大小王,现在Alex抽到了n张牌,请将扑克牌按照牌面从大到小的顺序排序。牌的表示方法:
红桃(heart)用字母h表示
黑桃(spade)用字母s表示
方片(dianmond)用字母d表示
梅花(club)用字母c表示
2~10的牌面直接用2,3,4,5,6,7,8,9,10 表示,其余的分别为A,J,Q,K
比如方片J用dJ表示, 红桃A用hA表示
牌面大小:2>A>K>Q>J>10>9>……>4>3
相同牌面的按照花色(h>s>d>c)顺序排。

输入格式:

多组数据。每组数据一行,表示当前摸到的n张牌(1<=n<=52)。

输出格式:

针对每组数据,输出一行,即排序后的结果,每张扑克后面有一个空格。

输入样例:

h7 c10 h4 s7 c5 cA dA c4 sJ h9 hQ d8 h2 s2 d9 sA dQ c6 hA
h7 s8 s7 c5 c8 cK sQ d2 s3 hQ d8 s10 sA d5 h10 hA

输出样例:

h2 s2 hA sA dA cA hQ dQ sJ c10 h9 d9 d8 h7 s7 c6 c5 h4 c4
d2 hA sA cK hQ sQ h10 s10 s8 d8 c8 h7 s7 d5 c5 s3 

代码实现:

import functools
dict1 = {'h':4, 's':3, 'd':2, 'c':1}
dict2 = {'2':13, 'A':12, 'K':11, 'Q':10, 'J':9, '1':8, '9':7, '8':6, '7':5, '6':4, '5':3, '4':2, '3':1}
# 1表示str1大,-1表示str2大
def cmp(str1, str2) -> int:if str1[1]!=str2[1]:num1 = dict2[str1[1]]num2 = dict2[str2[1]]if num1>num2:return 1if num1<num2:return -1else:num1 = dict1[str1[0]]num2 = dict1[str2[0]]if num1>num2:return 1else:return -1return 0try:while True:cnt = 0mylist = list(map(str, input().split()))if mylist==[]:breaknewlist = sorted(mylist, key = functools.cmp_to_key(cmp), reverse=True)result = str(' '.join(str(i) for i in newlist))print(result+' ')
except EOFError:pass

7-5 p094扑克排序相关推荐

  1. 蓝桥杯 | 扑克排序(详细解析)

    一.题目描述 问题描述 扑克牌排序:构造扑克牌数组,对扑克牌进行排序. 排序原则如下: 数字从小到大是 2-10.J.Q.K 和 A, 花色从小到大是方块(diamond).梅花(club).红桃(h ...

  2. 征战蓝桥 —— 2014年第五届 —— C/C++A组第6题——扑克排序

    题目 A A 2 2 3 3 4 4, 一共4对扑克牌.请你把它们排成一行. 要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌.请填写出所有符合要求的排列中,字典序 ...

  3. 基本排序算法 【转载】

    基本排序算法 基于比较的排序 冒泡排序 没什么可说的, 改进方法就是加一个标志位防止有序后重复遍历. 由于需要遍历两次, 所以时间复杂度O(N^2) 传送门 --> 冒泡排序 选择排序 外层从0 ...

  4. 算法原理系列:木桶排序

    算法原理系列:木桶排序 木桶排序是一种用标记来替代比较操作的排序手段,适用范围较窄,但效率极高,时间复杂度为 O(n) O(n),在生活中,我们也经常能看到一些木桶排序的实际案例,比如扑克牌排序时,我 ...

  5. 编写一个扑克类(每张扑克有花色和数值,例如红心A,草花10),将52张扑克牌放到集合中(自己去选择集合类)

    编写一个扑克类(每张扑克有花色和数值,例如红心A,草花10,将52张扑克牌放到集合中自己去选择集合类 题目描述 代码 题目描述 编写3个方法 方法1.将集合中的所有扑克重新洗牌,并将扑克输出(打印出来 ...

  6. 2014年 第5届 蓝桥杯 Java B组 省赛解析及总结

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:部分 ...

  7. Java【全排列 算法 模板】

    全排列模板-数组 2013年 第四届 蓝桥杯[带分数] 全排列模板-字符数组 2014年 第五届 蓝桥杯[扑克排序] 全排列模板-无重复元素 2016年 第七届 蓝桥杯[凑算式] 全排列模板-数组 p ...

  8. 征战蓝桥 —— 题解目录

    蓝桥杯练习系统 入门训练 试题编号 试题名称 关键字 编程语言 BEGIN-1 A+B问题 入门 C++ BEGIN-2 序列求和 入门 求和公式 C++ BEGIN-3 圆的面积 入门 实数输出 C ...

  9. 蓝桥杯2013-2016真题

    javaB组蓝桥杯省赛历年真题(23-16) 文章目录 历年真题 第一次蓝桥杯百校真题大联赛 尺取法 概念 反向扫描 同向扫描 真题 2013年真题 一.世纪末的星期 二.马虎的算式 三.振兴中华 四 ...

最新文章

  1. 优化XCode的编译速度
  2. 数据挖掘视频教程下载
  3. Adroid新增硬件编解码
  4. java值传递和引用传递简单_Java里的值传递与“引用传递”——一些想法
  5. LeetCode:旋转链表【61】
  6. CLP 中关闭自动落实的问题
  7. 【SQL】实验三 视图管理和使用
  8. FPGA 429 接口设计
  9. UVA1386 Cellular Automaton
  10. css设置背景颜色透明度
  11. 奥特曼小分队之四(Work Breakdown Structure)
  12. 阿卡迪亚大学计算机科学专业,阿卡迪亚大学世界排名解读
  13. zabbix_agentd_window端运行报错cannot connect to Service Manager: [0x00000005]
  14. PTA换硬币【满分】
  15. 二级建造师继续教育留念
  16. Hbase给初学者的“下马威”
  17. 行业站seo体验,把访客当傻瓜你才能赢!
  18. python dataframe创建指定大小_pandas DataFrame创建方法的方式
  19. Linux系统文件句柄数
  20. linux_FHS目录结构标准

热门文章

  1. 计算机视觉之人脸学习(五)
  2. 梅花雨做的一个日历控件
  3. bilibili手机端追剧在哪里?
  4. 华为服务器系统备份,华为云服务器备份的2种形式有啥区别?
  5. P3609 [USACO17JAN] Hoof, Paper, Scissor G
  6. 抓包:Android不走代理的请求
  7. golang:解析HTTP请求参数
  8. Python中的文件及目录操作
  9. 黑客眼中安全防范的“四大利器”
  10. 【转】Druid连接池一个设置引发的血案