每日算法

import java.util.Scanner;
/**
 * 输入13张牌[2 3 4 5 6 7 8 9 10 J Q K A]中的任意16张牌,检查组成顺子的条数。
 * 顺子组成规则:
 * a、从3开始,任意连续的牌例如:[3 4 5 6 7]\[ 4 5 6 7 8 9 10]\[10 J Q K A] 都可以组成顺子
 * b、2不能组成顺子
 * c、多个顺子换行输出
 * 输出所有顺子
 *
 * 核心思路:计数排序,计数大于0转换成对应的牌,计数小于0转换成空格,按空格拆分字符串,字符串长度大于等于5输出顺子
 *
 * */
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()){
            System.out.println(getIn(in.nextLine()));
        }
    }

    /**计算字符串最后一个单词的长度,单词以空格隔开。2 9 J 2 3 4 K A 7 9 A 5 6*/
    public static String getIn(String in){
        in = in.trim();
        String[] nums = in.split(" ");
        int[] count = new int[12];
        for (int i = 0; i < count.length ; i++) {
            count[i] = 0;
        }
        for (int i = 0; i 0){
                temp +=trn(i);
            }else{
                temp +=" ";
            }
        }
        String[] results = temp.split(" ");
        for (int i = 0; i < results.length ; i++) {
            if(results[i].length()>4){
                result += results[i]+"\n";
            }
        }
        if(result.length()<=0){
            result = "No";
        }
        return result.trim();
    }

    private static String trn(int index){
        String result = "";
        if(index==0){
            result ="3";
        }else if(index==1){
            result ="4";
        } else if(index==2){
            result ="5";
        }else if(index==3){
            result ="6";
        }else if(index==4){
            result ="7";
        }else if(index==5){
            result ="8";
        } else if(index==6){
            result ="9";
        }else if(index==7){
            result ="10";
        }else if(index==8){
            result ="J";
        } else if(index==9){
            result ="Q";
        }else if(index==10){
            result ="K";
        }else if(index==11){
            result ="A";
        }
        return result;
    }
}

你可能感兴趣的:(每日算法,算法,java,华为)