首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
现在一副54张的扑克牌(2个大王,2个小王),任意抽五张牌,
[问答题]
现在一副54张的扑克牌(2个大王,2个小王),任意抽五张牌,判断是不是顺子。其中A看作1,J为11,Q为12,K为13。另外这里还有个“癞子”规则,就是大王和小王可以代替任何牌。比如:“红心A,黑桃3,小王,大王,方片5”, 上面的5张牌就可以变成“1,2,3,4,5”(大小王分别看作2和4)。现在我们要用程序来判断5张牌是不是顺子。为了方便起见,你可以认为大小王是0。
添加笔记
求解答(0)
邀请回答
收藏(7)
分享
纠错
3个回答
添加回答
0
keep201812302016285
按照数组下标接受元素为1 如果是0就用计数器加1 0个数+含一个数小于<5 不是顺子 计算 含1之间的间隙是否超过0个数 超过不是顺子
发表于 2022-05-14 16:39:35
回复(0)
0
universal猿
五张牌,对除了大小王(0) 的其余数字排序,查找排序对排序后结果缺空数,缺空数等于大小王数,则为顺子,否则不是。
编辑于 2020-08-05 20:33:24
回复(0)
0
小小服务
public static boolean isShun(String str){
String[] str1 = str.split(",");
HashMap<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("J", 11);
map.put("Q", 12);
map.put("K", 13);
for(int i = 2;i < 11;i++){
map.put(String.valueOf(i), i);
}
int[] arr = new int[5];
for (int i = 0; i < str1.length; i++) {
if(str1[i].length() == 3){
arr[i] = map.get(str1[i].substring(2));
}else{
arr[i] = 0;
}
}
Arrays.sort(arr);
int re = 0;
for(int i = 0;i < 2;i++){
if(arr[i] == 0){
re++;
}
}
int i = re;
for(;i < 4;i++){
if(arr[i + 1] - arr[i] == 0){
return false;
}
if(arr[i + 1] - arr[i] == 2){
if(re == 0){
return false;
}
re--;
}
if(arr[i + 1] - arr[i] == 3){
if(re < 2){
return false;
}
re = 0;
}
if(arr[i + 1] - arr[i] > 3){
return false;
}
}
if(i == 4){
return true;
}
return false;
}
发表于 2019-02-20 15:45:23
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
点我达
2019
Java工程师
上传者:
小小
难度:
3条回答
7收藏
1260浏览
热门推荐
相关试题
(verbal)最近的研究显示,许...
言语理解与表达
2019
普华永道
人力资源
审计
税务服务
风险管理
管理咨询
行政管理
评论
(3)
来自
职能类模拟题14
(verbal)最近的研究显示,许...
言语理解与表达
2019
普华永道
人力资源
审计
税务服务
风险管理
管理咨询
行政管理
评论
(2)
来自
职能类模拟题14
以下数据结构的说法,错误的是
Java工程师
点我达
2019
评论
(4)
《拳皇97》最后BOSS是谁?
游戏常识
评论
(1)
《魔兽世界》中,下列不属于玩家可以...
游戏常识
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题