gpt4 book ai didi

java - 如何使用 Java 和两个嵌套 for 循环计算扑克中的对数

转载 作者:行者123 更新时间:2023-12-02 11:14:00 29 4
gpt4 key购买 nike

我对编程非常陌生,我一直在尝试一项练习。基本上,我需要计算在未排序的 5 张卡片串中找到的卡片对的数量。我的理解方式可能是错误的例如,其中一个字符串如下所示:'sTh3c9hQ',其中 s 是黑桃,T 是十,h 是红心等......我不确定为什么我的代码不起作用。可能是出于我无视的非常合乎逻辑的原因。有人可以给我一些建议吗?谢谢。

        int count = 0;
for(int i = 0; i<hand.length()-2; i+=2){
for(int j = 1; j<hand.length()-3; j+=2){
if(hand.charAt(i) == hand.charAt(i+2) && hand.charAt(j) ==
hand.charAt(j+3)) {
count++;
}
}
}
return count;

“sTh3c9hQ”情况下的所需输出将为 0,因为没有对。'sTh3c9sT' 情况下的所需输出将为 1,因为有一对。等等。如果有两对,则计数为 2。如果有 3 个,则计数为 3,等等

最佳答案

我个人认为你应该将字符串拆分成一个列表,而不是跟踪你在字符串本身中的位置,这使得 for 循环更容易理解。类似的东西看起来像:

public int getPairs(final String hand) {
int count = 0;
List<String> cards = getParts(hand, 2);
for (int i = 0; i < cards.size() - 1; i++) {
for (int j = i + 1; j < cards.size(); j++) {
if (cards.get(i).charAt(1) == cards.get(j).charAt(1)) {
count++;
}
}
}
return count;
}

private static List<String> getParts(final String string,
final int partitionSize) {
List<String> parts = new ArrayList<>();
int len = string.length();
for (int i = 0; i < len; i += partitionSize) {
parts.add(string.substring(i, Math.min(len, i + partitionSize)));
}
return parts;
}

关于java - 如何使用 Java 和两个嵌套 for 循环计算扑克中的对数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50417013/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com