javascript - js算法问题?

查看:51
本文介绍了javascript - js算法问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

四条:开奖号码中有1个数字出现四次,另1个数字出现一次。如:11113, 22022.

葫芦:开奖号码中有1个数字出现三次,另1个数字出现两次,如:11122, 32323,

顺子:开奖号码的5个数字不同且相连,如:01234, 67890, 89012(9与0相连,0与1相连)

三条:开奖号码中有1个数字出现三次,其余2个数字各出现一次,例如:21113, 22256, 90899

两对:开奖号码中有2个数字各出现两次,另1个数字出现一次:例如:11255, 56569,

一对:开奖号码中有1个数字出现两次,其余3个数字各出现一次:例如:11256, 46689,

单牌:开奖号码的5个数字各不相同,且不为顺子。例如:12348,24680.

解决方案


    var test ={
        objList:{},
        strType:function(){
            var list = this.objList;
            var objList = [];
            for(var arr in list){
                objList.push(list[arr]);
            }
            if(objList.length == 2){
                if(objList[0]["reNum"] == 4 || objList[1]["reNum"] == 4){
                    return "四条";
                }
                if(objList[0]["reNum"] == 3 || objList[1]["reNum"] == 3){
                    return "葫芦";
                }
            }
            if(objList.length == 3){
                if(objList[0]["reNum"] == 3 || objList[1]["reNum"] == 3 || objList[2]["reNum"] == 3){
                    return "三条";
                }
                if((objList[0]["reNum"] == 2 && objList[1]["reNum"] == 2) || (objList[0]["reNum"] == 2 && objList[2]["reNum"] == 2) || (objList[1]["reNum"] == 2 && objList[2]["reNum"] == 2)){
                    return "两对";
                }
            }

            if(objList.length == 4){
                if(objList[0]["reNum"] == 2 || objList[1]["reNum"] == 2 || objList[2]["reNum"] == 2 || objList[3]["reNum"] == 2){
                    return "一对";
                }
            }

            if(objList.length == 5){
                var bool = true;
                for(var i =0;i < 4;i++){
                    if(Math.abs(objList[i]["name"] - objList[i+1]["name"]) != 1 && Math.abs(objList[i]["name"] - objList[i+1]["name"]) != 9){
                        bool = false;
                        break;
                    }
                }
                if(bool){
                    return "顺子";
                }else{
                    return "单牌";
                }
            }

            return "没找到条件";
        },
        inint:function(str){
            var list = str.toString().split("");
            if(list.length != 5){
                return "输入有误";
            }
            for(var i= 0;i<list.length;i++){
                var value = "a"+list[i];
                if(this.objList[value]){
                    this.objList[value]["reNum"]++;
                }else{
                    this.objList[value] = { reNum:1,name:list[i]};
                }
            }
            return this.strType();
        }
    }

    var str = 78901;
    console.log(str);
    console.log(test.inint(str));

这篇关于javascript - js算法问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆