- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我的教授决定变聪明,为我的扑克项目设计了一手名为 EVEN STRAIGHT 的牌。这就像顺子,只是牌必须是连续的偶数。例如- 8,6,2,4,10 是偶数顺子。此外,一张 A(值为 1)可以用作“高端”或“低端”,这意味着它可以是 1 还是 14,具体取决于其他牌。我无法按升序对数组中卡片的值进行排序,因为我们无法在此项目中使用 .sort 方法。有人能帮我吗?这也是一个介绍性的 Java 类,因此请尽量使其简单。谢谢。这是我目前所拥有的......
//可以假设只有 5 张卡片作为参数传入。
public static boolean hasEvenStraight(Card [] cards) {
boolean evenCard = false;
int [] value = new int[cards.length];
for(int i = 0; i<cards.length; i++){
Card myCard = cards[i];
value[i] = myCard.getValue();
if(value[i]%2 == 0){
evenCard = true;
}
else
evenCard = false;
}
if(evenCard){
//This is where I am stuck
}
return false;
}
最佳答案
首先,您的代码中存在逻辑错误。在您的 for
循环中,您正在检查当前卡片是偶数还是奇数。但是当循环结束时,剩下的就是你是否看过最后一张牌。你需要检查它们是否都是偶数。
for(int i = 0; i<cards.length; i++){
Card myCard = cards[i];
value[i] = myCard.getValue();
if ( value[i] == 1 ) {
value[i] = 14;
}
if(value[i]%2 != 0)
return false
}
}
这个循环,如果它发现一张牌不是偶数,它会立即返回 false,因为即使是奇数牌也意味着你没有偶数顺子。所以在它完成后你知道你有所有的偶数。
但这当然是不够的。您想知道卡片是否连续。诀窍在这里:您实际上不必将所有卡片值都保存在该 value
数组中。您只需要保留最高的一个和最低的一个。循环结束后,如果你知道它们都是偶数,并且你的最高 - 你的最低 = 8,则说明你有连续的偶数,即偶数顺子。
为什么?因为如果它们不是连续的,那么即使在中间也会有缺失,对吧?但是,如果最低点比最高点少 8,则无法将 3 张牌推到它们之间以使它们都相等。
但是我们需要注意相同点数的牌,比如黑桃2和红桃2。他们会破坏这个原则。如果它们存在,那也不是一条直线。
为了检查这一点,我们必须为我们处理的每个卡值保留一个标志,说“我们是否已经处理了这个卡值”?为此,我们可以使用类似 Set
的东西。在检查每个数字时,我们会问:“这个数字在我们已经检查过的数字集中吗?”。如果是这样,那么当然,这不是偶数顺子。如果不是,我们将当前数字添加到集合中,以便可以检查后面的数字。
对于范围较小的整数
,我们可以在没有实际 Java Set
的情况下执行此操作。我们使用一个名为 alreadyThere
或类似名称的 boolean 值数组。索引 i
处的元素表示“我们是否检查了值为 i
的卡片”。这有点浪费空间,因为我们永远不会使用奇数索引或零和一索引,但它很容易实现。只需检查 alreadyThere[cardValue]
是否为 true
。当然,在我们检查它是一个唯一的数字之后,我们将 alreadyThere[cardValue]
设置为 true
以供下一次迭代检查。
那么让我们修改你的方法:
public static boolean hasEvenStraight(Card [] cards) {
int low = 20; // There is no 20 card.
int high = 0; // There is no 0 card.
// This array is a bit wasteful as it won't all be used,
// but it's straightforward this way.
boolean[] alreadyThere = new boolean[15];
for(int i = 0; i<cards.length; i++){
Card myCard = cards[i];
int currValue = myCard.getValue();
// Handle ace. If it's 1 it's not an
// even hand anyway, so assume it's 14.
if ( currValue == 1 ) {
currValue = 14;
}
// If any card is not even, this is not an Even Straight.
if(currValue%2 != 0){
return false;
}
// We have two cards of the same number
// (E.g. 2 of spades and 2 of hearts). So
// not a straight.
if ( alreadyThere[currValue] ) {
return false;
}
alreadyThere[currValue] = true;
// To get the lowest and highest, compare each value to
// existing lowest and highest and change them accordingly.
if ( currValue > high ) {
high = currValue;
}
if ( currValue < low ) {
low = currValue;
}
}
// Loop finished. All the numbers are even, now check if they
// are consecutive.
return ( high - low ) == 8;
}
关于java - 在扑克牌中找到 EVEN STRAIGHT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26962884/
我正在阅读 jQuery API,关于偶数选择器,jQuery 建议我们使用纯 CSS 选择器选择元素列表,然后使用 filter(":even") 以获得更好的性能。但我认为 jQuery 也针对其
jquery 中的 :nth-child(even) 和 :even 看起来很相似,但选择的元素不同。请让我知道其中的差异。 快乐编码... 最佳答案 下面是一个例子来说明差异: http://jsf
query("SELECT id, look, username, motto FROM users WHERE rank = '7'"); if($query->num_rows > 0):
我在序言中有以下奇数和偶数生成器 even(0). even(X) :- odd(Y), X is Y+1, X>0. odd(1). odd(X) :- even(Y), X is Y+1, X>1
我的问题对你来说可能听起来不同。 我是初学者,正在学习有限自动机。我正在通过互联网搜索 下面给定机器的有限自动机的正则表达式。 谁能帮我写上面机器的“有限自动机的正则表达式” 任何帮助将不胜感激 最佳
jQuery 选择 first row 作为 even (基于 0)而 CSS 选择 second row 作为 even (1基于)。是的,jQuery documentation在它的附加说明中明
PLFA 练习:如果我们在量词章节 (https://plfa.github.io/Quantifiers/) 中更“自然地”编写算术会怎样? ∃-even′ : ∀ {n : ℕ} → ∃[ m ]
面试中被问到的问题: 给定一个数组。任务是排列数组: 奇数元素占据奇数位置,偶数元素占据偶数位置。 - 元素的顺序必须保持不变。 考虑从零开始的索引。 按条件打印后,若有剩余,则原样打印剩余元素。 例
首先,抱歉英语不是我的第一语言。 *(偶数和奇数是根据索引) 我想在移动 View 中实现此表。 我尝试过的 Content 1 Head Content 2
我在my.cnf中添加了如下内容 [mysqld] max_allowed_packet=32M [mysql] max_allowed_packet=32M 而且我还在 JDBC 查询中添加了以下内
我继承了一些遗留代码,可以旋转三角形之间的边以改进拓扑分布,该算法运行良好,但计算量很大。 给定由共享一条边的两个三角形组成的四边形的伪代码是: /* split 0-2 */ score_02 =
GitHub 网络界面有一个很好的功能,可以告诉我一个分支是否与 master 分支一致。 是否有与此功能等效的命令行?我使用多个存储库,我正在寻找一种快速方法来查看分支是否均匀或需要注意。 这里是
抱歉标题太可怕了,我真的很难为我正在寻找的东西找到合适的词。我认为我想做的其实很简单,但我仍然无法真正专注于创建算法。我敢打赌,如果我不缺乏算法术语的基本知识,我可以很容易地在网上找到解决方案。 假设
我们在类里面学习数组,我被分配了这个编程项目。到目前为止,我已经编写了下面的代码,但我对如何让它正常工作感到困惑。我应该为我的代码使用带有 System.out.println 语句的 for 循环。
我正在使用 jQuery 来检查元素是奇还是偶: $("#map183").parent().is(':even'); 这将返回true或false,具体取决于元素所在的位置。 但是这总是返回 fa
我需要在 Google AppEngine(或者您可以想到任何其他哈希表)中将一堆实体存储在我需要根据顺序输入自行创建的键下。 举个例子,假设我只处理长度为一位十进制数字的键。然后我需要为键“0”存储
我试图从我的表中获取一些记录,其中 is_active = 1,但我的查询返回结果甚至是记录的 is_active = 0。我确定这是我的查询错误。 这是我的查询 SELECT `id`, `post
所以我的教授决定变聪明,为我的扑克项目设计了一手名为 EVEN STRAIGHT 的牌。这就像顺子,只是牌必须是连续的偶数。例如- 8,6,2,4,10 是偶数顺子。此外,一张 A(值为 1)可以用作
我正在编写代码,根据玩家的得分 (puntajes) 创建两个“偶数团队”。 该算法遍历球员数组并比较每个球员的得分以获得最小差异,然后将球员分为两个数组,每队一个。 这是我的代码: if (list
我试图隐藏一个不属于我的类的实现。我想通过扩展类并实现自己的接口(interface)来做到这一点。以下是我需要的类的实例是如何创建的: QueueInfo info = admin.getQueue
我是一名优秀的程序员,十分优秀!