javascript - js算法问题?
本文介绍了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屋!
查看全文