算法提高 12-2扑克排序
2017-04-06 11:35
281 查看
问题描述
扑克牌排序:构造扑克牌数组,对扑克牌进行排序。排序原则如下:数字从小到大是2-10、J、Q、K和A,花色从小到大是方块(diamond)、梅花(club)、红桃(heart)、黑桃(spade)。两张牌比较时先看数字,数字相同时看花色。要求对输入的扑克牌进行从小到大排序。
输入五张牌(表示黑桃2、红桃3、黑桃3、方块A和梅花J): 2 s 3 h 3 s A d J c
输出结果应为:2 s 3 h 3 s J c A d数组长度固定为5。
样例输出
与上面的样例输入对应的输出。
例:
数据规模和约定
输入数据中每一个数的范围。
扑克牌排序:构造扑克牌数组,对扑克牌进行排序。排序原则如下:数字从小到大是2-10、J、Q、K和A,花色从小到大是方块(diamond)、梅花(club)、红桃(heart)、黑桃(spade)。两张牌比较时先看数字,数字相同时看花色。要求对输入的扑克牌进行从小到大排序。
输入五张牌(表示黑桃2、红桃3、黑桃3、方块A和梅花J): 2 s 3 h 3 s A d J c
输出结果应为:2 s 3 h 3 s J c A d数组长度固定为5。
样例输出
与上面的样例输入对应的输出。
例:
数据规模和约定
输入数据中每一个数的范围。
/** * 思路:将扑克牌的数字部分乘以10加上花色对应的值(自己设定)组成一个新的int数。 * 将新的int数组排序 * 输出 */ import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); String s1 = ""; String s2 = ""; String x1 = "dchs";//四中花色的数字分别为0123(下标) String x2 = "0123456789SJQKA"; //将原字符串分成俩个子串,一个放数字部分,一个放花色部分 for(int i=0,j=1;i<s.length()-1;){ s1 = s1 + s.charAt(i); s2 = s2 + s.charAt(j); i = i+2;j = j+2; } int[] array = new int[s1.length()]; for(int k=0;k<array.length;k++){ //数组的值为数字在x2中的下标乘以10+花色在x1中的下标 //乘以10的目的是扩大比较时数字的作用 array[k] = x2.indexOf(s1.charAt(k))*10 + x1.indexOf(s2.charAt(k)); } //排序 Arrays.sort(array); //输出 for(int m=0;m<array.length;m++){ int shuzi = array[m]/10; int huase = array[m]%10; System.out.print(x2.charAt(shuzi) +""+ x1.charAt(huase) + " "); } } }
相关文章推荐
- 算法提高 12-2扑克排序
- 算法提高 12-2扑克排序
- 蓝桥杯 算法提高 12-2扑克排序
- 算法提高 ADV-230 12-1三角形
- 算法提高 12-1三角形
- 算法提高 ADV-231 12-2扑克排序
- 蓝桥杯 算法提高 12-1三角形 【计算几何_三角形】【全是板子】
- 算法提高 12-1三角形
- 算法提高 12-1三角形
- 算法提高 12-2扑克排序
- 算法提高 12-1三角形
- 算法提高 12-1三角形
- 蓝桥杯算法提高 12-1三角形
- 蓝桥杯 算法提高 12-1三角形 (Java解题)
- 算法提高 12-1三角形 外心坐标
- 算法提高 12-1三角形
- 算法提高 12-1三角形
- 蓝桥 ADV-230 算法提高 12-1三角形 【数学公式】
- 算法提高 12-2扑克排序
- 算法提高 12-1三角形