['as', '10h', '9d', 'qc', '3h']
'as' = 'a'是'A','s'是花色
这样一个array,需要写一个function用最短的字符验证是否为顺子或者同花顺写了半天,最简单的也需要很多行,说是有人用70个字符完成过,感觉不太可能。。
2 回答
三国纷争
TA贡献1804条经验 获得超7个赞
我没学过php,给你一个思路吧。
1.建立一个数字到扑克数字的映射(a[1]='1',a[2]='2'....a[11]='j'...)
2.建立另一个数字到扑克花色的映射(b[1]='s',b[2]='h'...)
3.利用1,2写一个2重循环建立一个牌型到值的映射(c[a[i].b[j]]=i+j*100)
4.利用映射关系对你的数组进行排序,接下来检测每个相邻元素之间的值的差均为1即可
代码行数尚可,没有利用可能存在的语言特性,不够优美。优点是映射关系只要建立1次,以后重复步骤4即可
- 2 回答
- 0 关注
- 326 浏览
添加回答
举报
0/150
提交
取消