Java实现蓝桥杯算法提高12-2扑克排序
扑克牌排序
问题描述
扑克牌排序:构造扑克牌数组,对扑克牌进行排序。
排序原则如下:数字从小到大是2-10、J、Q、K和A,花色从小到大是方块(diamond)、梅花(club)、红桃(heart)、黑桃(spade)。
两张牌比较时先看数字,数字相同时看花色。要求对输入的扑克牌进行从小到大排序。
输入五张牌(表示黑桃2、红桃3、黑桃3、方块A和梅花J): 2s3h3sAdJc
输出结果应为:2 s 3 h 3 s J c A d数组长度固定为5。
package 第六次模拟;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Demo11扑克牌 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
String[] s1 = s.split("d|c|h|s");
A[] a = new A[s1.length];
for (int i = 0; i < s1.length; i++) {
a[i] = new A();
a[i].data1 = s1[i];
if (s1[i].equals("10")) {
a[i].data = "91";
}
if (s1[i].equals("J")) {
a[i].data = "92";
continue;
} else if (s1[i].equals("Q")) {
a[i].data = "93";
continue;
} else if (s1[i].equals("K")) {
a[i].data = "94";
continue;
} else if (s1[i].equals("A")) {
a[i].data = "95";
continue;
}
a[i].data = s1[i];
}
List<A> list = new ArrayList<A>();
int h = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'd') {
a[h].color = 1;
a[h].color1 = "d";
list.add(a[h++]);
} else if (s.charAt(i) == 'c') {
a[h].color = 2;
a[h].color1 = "c";
list.add(a[h++]);
} else if (s.charAt(i) == 'h') {
a[h].color = 3;
a[h].color1 = "h";
list.add(a[h++]);
} else if (s.charAt(i) == 's') {
a[h].color = 4;
a[h].color1 = "s";
list.add(a[h++]);
}
}
Collections.sort(list);
for (A b : list) {
System.out.print(b.data1 + b.color1 + " ");
}
}
static class A implements Comparable<A> {
String data;
String data1;
String color1;
int color;
@Override
public int compareTo(A o) {
if (data.equals(o.data)) {
return color - o.color;
} else {
return data.compareTo(o.data);
}
}
}
}
Java实现蓝桥杯算法提高12-2扑克排序的更多相关文章
- Java实现 蓝桥杯 算法提高 进攻策略加强(暴力)
试题 算法提高 进攻策略加强 问题描述 植物大战僵尸这款游戏中,还有一个特别的玩儿法:玩家操纵僵尸进攻植物. 首先,僵尸有m种(每种僵尸都是无限多的),玩家可以选择合适的僵尸来进攻.使用第i种僵尸需要 ...
- Java实现 蓝桥杯 算法提高 小X的购物计划
试题 算法提高 小X的购物计划 问题描述 小X打算去超市shopping.小X没什么钱,只有N元.超市里有M种物品,每种物品都需要money,在小X心中有一个重要度.有的物品有无限件,有的物品只有几件 ...
- Java实现蓝桥杯 算法提高 八皇后 改
**算法提高 8皇后·改** 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大. 输入格式 一个8*8的棋 ...
- Java实现 蓝桥杯 算法提高 日期计算
算法提高 日期计算 时间限制:1.0s 内存限制:256.0MB 问题描述 已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况.尤其是逢百年不闰,逢400年闰的情 ...
- Java实现 蓝桥杯 算法提高 周期字串
算法提高 周期字串 时间限制:1.0s 内存限制:256.0MB 问题描述 右右喜欢听故事,但是右右的妈妈总是讲一些"从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事,讲的什么呢?从前有 ...
- Java实现 蓝桥杯 算法提高 三进制数位和
算法提高 三进制数位和 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 给定L和R,你需要对于每一个6位三进制数(允许前导零),计算其每一个数位上的数字和,设其在十进制下为S. 一个 ...
- Java实现 蓝桥杯 算法提高 矩阵相乘
算法提高 矩阵相乘 时间限制:1.0s 内存限制:256.0MB 问题描述 小明最近在为线性代数而头疼,线性代数确实很抽象(也很无聊),可惜他的老师正在讲这矩阵乘法这一段内容. 当然,小明上课打瞌睡也 ...
- Java实现 蓝桥杯 算法提高 新建Microsoft world文档
算法提高 新建Microsoft Word文档 时间限制:1.0s 内存限制:256.0MB 问题描述 L正在出题,新建了一个word文档,想不好取什么名字,身旁一人惊问:"你出的题目叫&l ...
- Java实现蓝桥杯 算法提高 身份证号码升级
算法提高 身份证号码升级 时间限制:1.0s 内存限制:256.0MB 问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位 ...
- Java实现蓝桥杯算法提高 哥德巴赫猜想
试题 算法提高 哥德巴赫猜想 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 根据所给函数(判断一个整数是否是素数),然后依托该函数,将输入N内的偶数(6-N),输出为两个素数之和( ...
随机推荐
- Scala 中 Any 类源码
package scalaabstract class Any { def equals(that: Any): Boolean //值比较 def hashCode(): Int //hash值 d ...
- 【hdu5100】棋盘覆盖
http://acm.hdu.edu.cn/showproblem.php?pid=5100 题目大意: 用1*k的木块铺n*n的棋盘,求多铺满多少个单位格. 方法: n < k,显然无解:n ...
- dedecms织梦建站后怎么防止被黑,加强安全漏洞措施?
dedecms织梦建站后怎么防止被黑,加强安全漏洞措施? 很多人反映dedecms织梦网站被黑的情况,因为织梦相对来说漏洞还是挺多的,特别是新建设的站点,有些目录.文件该删的删,权限及安全都要设置,以 ...
- mybatis多对一与一对多
步骤: 1.创建maven项目 2.编写工具类 3.编写实体类 4.编写mapper接口 5.配置xml 6.测试 多对一:多个学生关联一个老师 工具类: //sqlSessionFactory -- ...
- 12.1 Go nsq
12.1 Go nsq 1.nsq是Go语言编写的,开源的内存分布式消息队列中间件 2.可以大规模的处理每天数以十亿级别的消息 3.分布式和去中心化拓扑结构,无单点故障 4.地址https://git ...
- 如何覆盖elementUI样式
question: 在某个组件里面更改element-Ui的样式,而不影响全局. solution: 在需要更改的组件里新增一个style标签[重点:不要加scoped],然后直接获取class设置样 ...
- JavaScript实现单向链表结构
参考资料 一.什么是链表结构? 1.1.简介 链表和数组一样, 可以用于存储一系列的元素, 但是链表和数组的实现机制完全不同,链表中的元素在内存不是连续的空间,链表的每个元素由一个存储元素本身(数据) ...
- Mysql-NULL转数字
最近做了一个学生成绩表,其中遇到一个小问题 需要统计个门科目的平均成绩,在统计到高等数学时,因为高数没有人考,在成绩表中根本不存在的分数,但是在课程表存在高数科目. 当这两个表内联然后统计分数,这样会 ...
- mybatis的多表联查
多对一连表查询简单记录
- C#判断TCP连接状态