
缺少的扑克牌【set】
发布日期:2021-05-07 02:58:37
浏览次数:28
分类:精选文章
本文共 1962 字,大约阅读时间需要 6 分钟。
在此向老师学习,自己多努力!一副扑克牌有54张牌,分别是红桃,黑桃,方片,梅花各13张,以及大小王,现在Alex有一副牌只剩下53张了,给出这些牌,请问少了哪张牌。牌的表示方法:大王: Joker 小王: joker其余的牌用花色+牌面大小表示,花色表示如下:红桃: Heart 黑桃: Spade 方片: Diamond 梅花: Club2~10的牌面直接用2,3,4,5,6,7,8,9,10 表示,其余的:A: Ace J: Jack Q: Queen K: King比如方片J用 DiamondJack 表示, 红桃A用 HeartAce表示输入一行53个字符串,表示53张牌输出一行输出少的那张牌
思路分析:
利用集合set做比较好,老师也是用的set 集合特点无序且元素唯一,容易删除也容易添加,不用考虑元素是否重复的问题, 关于数据结构,建议使用字符串类型表示 我们先将集合中添加所有的元素牌,然后输入53张牌,逐一抹去,剩下的一张牌就是少的那张牌了代码如下:(Java实现)
package Exercises;import java.util.HashSet;import java.util.Scanner;import java.util.Set;public class testBailian4020ThelackOfPocket { public static void main(String[] args) { String[]color=new String[]{ "Heart", "Spade", "Diamond", "Club"}; String []point=new String[]{ "Ace" , "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"}; Setset=new HashSet (); set.add("Joker"); set.add("joker"); //组合牌并且放入集合当中 for (int i = 0; i < color.length; i++) { for (int i1 = 0; i1 < point.length; i1++) { set.add(color[i]+point[i1]); } } //从键盘输入,注意是使用的next()函数 ,遇到空格自动转为下一次输入 String instr; Scanner s=new Scanner(System.in); for (int i = 0; i < 53; i++) { instr=s.next(); set.remove(instr);//抹去集合中存在的牌 } //foreach遍历集合 for (String outStr:set ) { System.out.println(outStr); } }}
测试输入如下:
ClubQueen Club2 ClubAce SpadeAce Club10 Heart2 HeartJack Heart6 Heart4 Spade6 Diamond6 Spade7 Heart7 Spade10 DiamondJack SpadeKing Heart10 Spade2 Spade9 Diamond5 Club9 Spade8 DiamondAce Heart9 Heart5 Club8 Club7 ClubKing Club6 Club5 Club3 SpadeQueen Spade3 HeartAce SpadeJack Joker DiamondQueen Club4 Spade4 Diamond4 HeartQueen HeartKing Diamond2 Diamond10 DiamondKing Diamond3 Heart3 Diamond7 Diamond8 Spade5 ClubJack Heart8 Diamond9结果:
joker发表评论
最新留言
不错!
[***.144.177.141]2025年04月06日 01时51分06秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
设计模式-抽象工厂模式
2021-05-09
MySQL Explain查看执行计划详解
2021-05-09
IntelliJ IDEA 中,项目文件右键菜单没有svn选项解决办法
2021-05-09
Spring 动态绑定多实现类实例综述
2021-05-09
IDEA 调试Java代码的两个技巧
2021-05-09
MyBatis常见面试题:#{}和${}的区别是什么?
2021-05-09
Vue 数组和对象更新,但视图未更新,背后的故事
2021-05-09
剑指Offer面试题:9.二进制中1的个数
2021-05-09
《你是在做牛做马还是在做主管》- 读书笔记
2021-05-09
ASP.NET Core on K8S学习之旅(12)Ingress
2021-05-09
重新温习软件设计之路(4)
2021-05-09
《刷新》:拥抱同理心,建立成长型思维
2021-05-09
MVC3+NHibernate项目实战(二) :数据库访问层
2021-05-09
Flask入门
2021-05-09
MySQL数据库与python交互
2021-05-09
python如何对字符串进行html转义与反转义?
2021-05-09