一个朋友问的题,我没有学过Java,恳求各位帮忙,用JavaScipt将此题写出来,谢谢!急用。I Promise: MarkYouInOneDay
import java.util.ArrayList;
import java.util.TreeSet;public class Main ...{    /** *//**
     * @param args
     */
    public static void main(String[] args) ...{        String[] cards = ...{"6", "2" ,"3" ,"7" ,"4", "5", "8", "8", "10", "10", "10", "J", "K", "Q", "A"};
        TreeSet<Integer> set = init(cards);    //将字符串表示的扑克牌转换为数字,便于处理
        ArrayList<String> result = check(set);    //找出顺子
        printResult(result);    //打印顺子
        System.out.println("程序结束!!");
    }
    
    private static TreeSet<Integer> init(String[] cards) ...{
        TreeSet<Integer> set = new TreeSet<Integer>();
        for(String s:cards) ...{
            if(s.charAt(0)>='1'&&s.charAt(0)<='9') ...{
                set.add(Integer.parseInt(s));
            }else ...{
                switch(s.toUpperCase().charAt(0)) ...{
                case 'J':
                    set.add(11);    break;
                case 'Q':
                    set.add(12);    break;
                case 'K':
                    set.add(13);    break;
                case 'A':
                    set.add(14);    break;
                }
            }
        }
        return set;
        
    }
    
    private static ArrayList<String> check(TreeSet<Integer> set) ...{
        ArrayList<String> result = new ArrayList<String>();
        StringBuilder temp = new StringBuilder();
        int count = 0;
        Integer[] nums = new Integer[1];
        nums = set.toArray(nums);
        int begin = 0;
        for(Integer i:set) ...{
            if(count == 0) ...{
                begin = i;
                count++;
                temp.append(numToCard(begin));
            }else if(i == begin+count) ...{
                temp.append(", "+numToCard(i));
                count++;
            }else ...{
                if(count>4) ...{
                    result.add(temp.toString());
                }
                begin = i;
                temp.replace(0, temp.length(), numToCard(i)+"");
                count = 1;
            }
        }
        
        if(count>4)        result.add(temp.toString());
        return result;
    }
    
    private static String numToCard(int x) ...{
        if(x>10) ...{
            switch(x) ...{
            case 11:
                return "J";
            case 12:
                return "Q";
            case 13:
                return "K";
            case 14:
                return "A";
            }
        }else ...{
            return x+"";
        }
        return null;
    }
    
                     //可以将长顺子分解为短顺子的打印模式
    private static void printResult1(ArrayList<String> result) ...{        int count = 0;
        String[] nodes = null;
        if(result.size() == 0) ...{
            System.out.println("没有顺子!!");
        }else ...{
            for(String s:result) ...{
                nodes = s.split(",");
                count += (1+(nodes.length-4))*(nodes.length-4)/2;
            }
            System.out.println("共有"+count+"个顺子:");
            for(String s:result) ...{
                nodes = s.split(",");
                for(int i=5; i<=nodes.length; i++)
                    for(int j=0; i-j>4; j++) ...{
                        System.out.print(nodes[j].trim());
                        for(int x = j+1; x<i; x++) ...{
                            System.out.print("," + nodes[x]);
                        }
                        System.out.println();
                    }
            }
        }
    }                     //不将长顺子进行分解的打印模式
    private static void printResult2(ArrayList<String> result) ...{
        if(result.size() == 0) ...{
            System.out.println("没有顺子!!");
        }else ...{
            System.out.println("共有"+result.size()+"个顺子:");
            for(String s:result) ...{
                System.out.println(s);
            }
        }
    }

解决方案 »

  1.   

    http://topic.csdn.net/u/20101104/21/6a906aa3-d3d8-41e9-b8fa-f0e2222618f6.html?30452此题另外一个链接在这儿,如有帮助,200分相送。
      

  2.   


    嗯,看算法是一点都不难,只是我不会JAVA语法,时间比较紧,烦请各位捡分!
      

  3.   


    public class Main ...{       public static void main(String[] args) ...{这里的...是什么语法呀?有什么作用呢?
      

  4.   

    <script>


    function print() {
    var cards = init(["6", "2" ,"3" ,"7" ,"4", "5", "8", "8", "10", "10", "10", "J", "K", "Q", "A"]);
    cards = check(cards);
      printResult1(cards);
    }

    function init(cards) {
    var ret = new Array();
    for( var i = 0; i < cards.length; i ++ ) {
      var card = cards[i].toUpperCase().substring(0,1);
      if( card >='1' && card <='9' ) 
       ret[parseInt(cards[i])]=cards[i];
      else {
      switch(card){
       case 'J':
       ret[11]=card;break;
       case 'Q':
       ret[12]=card;break;
       case 'K':
       ret[13]=card;break;
       case 'A':
       ret[14]=card;break;
      } 
    }
    }
    return ret;
    }

    function check(sort_cards) {
    var result = new Array();
    var count = 0;
    var begin = 0;
    var temp = "";
    for( var i = 0; i < sort_cards.length; i ++ ) {
    if( sort_cards[i] == null )continue;
      if(count == 0) {
           begin = i;
           count++;
           temp = sort_cards[i];
          }else if(i == begin+count) {
            temp += (", " + sort_cards[i]);
            count++;
          }else {
            if(count>4) {
                result[result.length] = temp;
            }
            begin = i;
            temp = sort_cards[i];
            count = 1;
          }
    }
    if(count>4) {
          result[result.length] = temp;
        }
        return result;
    }

    function printResult1(result) {     var count = 0;
         var nodes = new Array();
         if(result.length == 0) {
             alert("没有顺子!!");
         }else {
            for(var i = 0; i < result.length; i ++) {
                nodes = result[i].split(",");
                count += (1+(nodes.length-4))*(nodes.length-4)/2;
            }
            alert("共有"+count+"个顺子:");
            for(var k = 0; k < result.length; k ++) {
                nodes = result[k].split(",");
                for(var i=5; i<=nodes.length; i++){
                   for(var j=0; i-j>4; j++) {
                        var scards = nodes[j];
                        for(var x = j+1; x<i; x++) {
                            scards += ("," + nodes[x]);
                        }
                        alert(scards);
                    }
                }
            }
        }
      }

    function printResult2(result) {
            if(result.length == 0) {
                alert("没有顺子!!");
            }else {
                alert("共有"+result.length+"个顺子:");
                for(var i = 0; i < result.length; i ++) {
                    alert(result[i]);
                }
            }
        }

    </script>
    <input type="button" value="print" onclick="print()"/>
      

  5.   

    虽然不难,搞下来还是花了不少时间:<HTML>
    <body>
    <script type="text/javascript">main();function main(){
    var cards = [ "6", "2", "3", "7", "4", "5", "8", "8", "10", "10", "10", "J", "K", "Q", "A" ];
    var set = init(cards);// 将字符串表示的扑克牌转换为数字,便于处理
    var result = check(set); // 找出顺子
    printResult1(result);// 打印顺子
    jsPrint("程序结束!!");
    }function jsPrint(msg){
    alert(msg);
    }function init(cards) {
        var set = new Array();
        for (var i = 0; i < cards.length; i++) {
           var s = cards[i];
           var ord;
            if (s =='J') {
                ord = (11);
            } else if (s =='Q') {
                ord = (12);
            } else if (s =='K') {
                ord = (13);
            } else if (s =='A') {
                ord = (14);
            }
            else{
               ord = parseInt(s);
            }
            set.push(ord);
        }
        
        for(var i = 0; i < set.length; i++){
          var min = set[i];
          for(var j = i+1; j< set.length; j++){
            var tmp = set[j];
            if(min > tmp){
              set[i] = tmp;
              set[j] = min;
              min = tmp;
            }
          }
        }    return set;}function check(set) {
        var result = new Array;
        var temp = "";
        var count = 0;
        var begin = 0;
        for (var k = 0; k< set.length; k++) {
         var i = set[k];
            if (count == 0) {
                begin = i;
                count++;
                temp += numToCard(begin);
            } else if (i == begin + count) {
                temp += ", " + numToCard(i)
                count++;
            } else {
                if (count > 4) {
                 result.push(temp);
                }
                begin = i;
                temp = numToCard(i) + "";
                count = 1;
            }
        }    if (count > 4)
            result.push(temp);
        return result;
    }function numToCard(x) {
        if(x==11)
           return "J";
        else if (x == 12)
           return "Q";
        else if (x == 13)
           return "K";
        else if (x == 14)
           return "A";
        else 
           return x + "";
    }// 可以将长顺子分解为短顺子的打印模式
    function printResult1(result) {
        var count = 0;
        var nodes = null;
        if (result.length == 0) {
         jsPrint("没有顺子!!");
        } else {
            for (var ii = 0 ; ii < result.length; ii++) {
             var s = result[ii];
                nodes = s.split(",");
                count += (1 + (nodes.length - 4)) * (nodes.length - 4) / 2;
            }
            
            var shunzi = "共有" + count + "个顺子:\n";
            var regTrim = /^\s*|\s*$/;
            
            for (var ii = 0 ; ii < result.length; ii++) {
             var s = result[ii];
                nodes = s.split(",");
                for (var i = 5; i <= nodes.length; i++)
                    for (var j = 0; i - j > 4; j++) {
                     shunzi += nodes[j].replace(regTrim, '');
                        //System.out.print(nodes[j].trim());
                        for (var x = j + 1; x < i; x++) {
                         shunzi += "," + nodes[x];
                        }
                        shunzi += "\n";
                    }
            }
            
            jsPrint(shunzi);
        }
    }</script>
    </body>
    </HTML>