对纸牌不分花色的大小排序,排序顺序是2,3,..9,JQKA

原创 2015年07月07日 22:46:40

//把字符串转换为整数存储到整数数组中,(有一个特殊的值“10”,占两个字符,整型存储时又只需要分配一个空间,所以用两个索引,i与j.j指向整数数组

里的元素,而i指向字符串里的一个字符,i遇到’1‘则让整数数组存储10,i+2跳到'10'后面的字符上),对整数数组排序,再把整数数组转换为字符串

public class stringfilter {
public static String  zhipaisort(String s){
if(s==null||s.length()==0){
return null;
}
//定义一个变量存储当前字符对应的数值
int value=0;
//10占两个字符在分配整数空间时要减去一个
int count=0;
for(int i=0;i<s.length();i++){
if(s.charAt(i)=='1'||s.charAt(i)=='0'){
count++;
}
}
int[] array=new int[s.length()-count/2];//整数数组存储所有的值
int j=0;//j记录当前指向整形数组的索引
for(int i=0;i<s.length();i++){//i 是指向字符数组的索引
char temp=s.charAt(i);//判断这个字符是10,j,q,k,A这些特殊字符吗
value=temp-'0';//先给赋予一个值,若在“2到9,此值没有问题,其他的更改此值”
if(temp=='1'){
value=10;
i++;
}
if(temp=='J'){
value=11;
}
if(temp=='Q'){
value=12;
}
if(temp=='K'){
value=13;
}
if(temp=='A'){
value=14;
}
array[j]=value;
j++;
}
Arrays.sort(array);
StringBuffer sb=new StringBuffer();
for(int i=0;i<array.length;i++){
if(array[i]>=11){
if(array[i]==11){
sb.append('J');
}
if(array[i]==12){
sb.append('Q');
}
if(array[i]==13){
sb.append('K');
}
if(array[i]==14){
sb.append('A');
}
}else{
sb.append(array[i]);
}


}
return sb.toString();

}

这道题的时间和空间效率都是O(n),不知道有没有更好的办法

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

python-2-3-如何根据字典中值的大小,对字典中的项排序?

方案1:print(sorted([9,1,2,8,5]))from random import randintd = {x: randint(60,100) for x in 'xyzabc'} #...

MP3排序,排顺序

  • 2014-06-30 18:17
  • 495KB
  • 下载

产生10个1-100的随机整数, * 把其中的奇数按照从小到大的顺序进行排序, * 并按照“1,2,3,、、、”这样的格式打印到d盘下的number.txt文档中。

package com.heima.test;import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IO...

拷贝android源码时候-由于windows文件名不分大小写的

将android源码从ubuntu-smb考到硬盘时候会给文件名加(2)的。 从硬盘考到ubuntu-smb之后执行如下,再编译android源码。 [1]android-down# find -...

扑克排序,按花色、值排序(2015年9月10日)

按花色和牌大小排序,红桃>方块>黑桃>梅花。 大概思路:新建Card对象,属性有 private int id; //花色,1234对应红方黑梅 private int values; //数字...

【Educational Codeforces Round 3 A】【水题 排序】USB Flash Drives 最少数量U盘存储m大小文件

A. USB Flash Drives time limit per test 2 seconds memory limit per test 256 megabytes ...

根据大小排序

  • 2012-12-17 23:14
  • 233B
  • 下载

《数据结构学习与实验指导》3-9:队列中的元素排序

实验内容:给定一个队列,将队列内的元素从小到大排序。不能直接访问队列中的元素。可以使用辅助队列。排序后的结果应存放在原队列中。 输入说明:首先给出1个正整数N(N<=10^5),表示队列中元素的个数...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)