面试题44:扑克牌的顺子
来源:互联网 发布:淘宝店铺整体托管 编辑:程序博客网 时间:2024/05/16 01:07
题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2-10为数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字。
//"poker.h"#include <iostream>using std::cout;using std::endl;using std::ends;//从小到大排序void bubble_sort(int a[], int n){ for (int i = 0; i < n; i++){ for (int j = 1; j < n - i; j++){ if (a[j - 1]>a[j]){ int tmp = a[j - 1]; a[j - 1] = a[j]; a[j] = tmp; } } }}bool is_sequence(int a[],int length){ //4*[1,13],2*0 if (length == NULL || length < 1){ return false; } bubble_sort(a, length); /*for (int i = 0; i < length; i++){ cout << a[i] << ends; } cout << endl;*/ int cnt_zero = 0; /*for (int i = 0; i < length; i++){ if (a[i] == 0){ cnt_zero++; } }*/ for (int i = 0; i < length && a[i]==0; i++){ cnt_zero++; } int small = cnt_zero; int big = small + 1; int cnt_gap = 0; while (big < length){ if ((a[big] - a[small]) == 0){ //有对子,则不为顺子 return false; } cnt_gap = cnt_gap + a[big] - a[small]-1; small++; big++; } /*if (cnt_gap > cnt_zero){ return false; } else{ return true; } return true;*/ return (cnt_gap > cnt_zero) ? false : true;}
测试:
void test(){ int poker[5] = { 0, 5, 3, 4, 1 }; bool b = is_sequence(poker, 5); if (b){ cout << "true" << endl; } else{ cout << "false" << endl; }}
0 0
- 面试题44:扑克牌的顺子
- 面试题44:扑克牌的顺子
- 面试题44:扑克牌的顺子
- 面试题44:扑克牌的顺子
- 面试题44:扑克牌的顺子
- 面试题44:扑克牌的顺子
- 面试题 44: 扑克牌的顺子
- 面试题44:扑克牌的顺子
- 【面试题44】扑克牌顺子
- 剑指offer面试题44扑克牌的顺子
- 剑指offer--面试题44:扑克牌的顺子--用哈希表
- 剑指Offer:面试题44 扑克牌的顺子
- 剑指offer 面试题44—扑克牌的顺子
- 《剑指Offer》学习笔记--面试题44:扑克牌的顺子
- 【剑指Offer学习】【面试题44:扑克牌的顺子】
- 剑指offer-面试题44:扑克牌的顺子
- 剑指offer之面试题44扑克牌的顺子
- 剑指Offer面试题44:扑克牌的顺子 Java实现
- 图的遍历算法-马遍历棋盘
- 数字三角形问题
- 第24课:Spark Streaming的Transformation、Action、Input和Output源码图解
- Linux下的lds链接脚本基础
- Linux基础(二)——文件与目录管理
- 面试题44:扑克牌的顺子
- ubuntu 16.04 安装 openjdk 1.7
- 【Unity3D】ShaderLab实战
- Slidingmenu+Fragment中,按下home键返回桌面,再重新进入程序时报错问题的解决方法
- JAVA语言为什么能跨平台?
- 淘宝网商品SKU系统设计经验分享
- poi操作ppt添加超链接
- 解密:IT运维艺术之集群(4层AND7层)
- JS获取request域的值,JSP页面可以采取以下方式