-
Java:
在
n
张扑克牌中找出顺子
题目
:有
n
张扑克牌,每张牌的取值范围是:
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
J
,
Q
,
K
,
A
。在这
n
张牌中找出顺子(
5
张及
5
张以上的
连续的牌),并将这些顺子打印出来。
思路
:我的思路其实很简单,首先就是要去掉重复的牌,因为同
样的顺子之算一个,显然< br>JAVA
中的
Set
很适合这个工作。同时又需要
对这些牌进行排序, 毫无疑问就是
TreeSet
了。然后从小到大遍历这些
牌,并设置一个计数器
count
。若发现连续的牌,则
count++
;若发现
不连续的,分< br>2
中情况:若
count>4
,则找到了一个顺子,存起来;反
之则什 么都不做。然后
count=1
,从新开始找顺子。下面就是代码:
import
ist;
import
t;
public
class
Main {
/**
*
@param
args
*/
public
static
void
main(String[] args) {
String[] cards = {
Q
TreeSet
//
将字符串表示的扑克牌转换为数字,便于
处理
ArrayList
//
找出顺子
printResult(result);
//
打印顺子
n(
程序结束!!
}
private
static
TreeSet
TreeSet
new
TreeSet
for
(String s:cards) {
if
((0)>='1'&&(0)<='9') {
(nt(s));
}
else
{
switch
(rCase().charAt(0)) {
case
'J':
(11);
break
;
case
'Q':
(12);
break
;
case
'K':
(13);
break
;
case
'A':
(14);
break
;
}
}
}
return
set;
}
private
static
ArrayList
ArrayList
new
ArrayList
StringBuilder temp =
new
StringBuilder();
int
count = 0;
Integer[] nums =
new
Integer[1];
nums = y(nums);
int
begin = 0;
for
(Integer i:set) {
if
(count == 0) {
begin = i;
count++;
(numToCard(begin));
}
else
if
(i == begin+count) {
(
count++;
}
else
{
if
(count>4) {
(ng());
}
begin = i;
e(0, (), numToCard(i)+
count = 1;
-
-
-
-
-
-
-
-
本文更新与1970-01-01 08:00,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/557020.html
-
上一篇:没有了
下一篇:没有了