gpt4 book ai didi

java - 寻找两个数字中的共享数字时遇到问题

转载 作者:行者123 更新时间:2023-12-02 01:00:24 25 4
gpt4 key购买 nike

我需要检查两个号码是否有一些共享的数字。我的方法在测试时不会返回任何内容。

我在这里想做的是获取第一个数字的每个数字,然后循环第二个数字以尝试找到与第一个数字相同的另一个数字。如果是这样,我想返回 true,如果不是,我想继续检查。

    public static boolean hasSharedDigit(int num1, int num2) {
int digit1, digit2;
boolean isShared;
boolean isNum1TwoDigits = ((num1 >= 10) && (num1 <= 99)) ? true : false;
boolean isNum2TwoDigits = ((num2 >= 10) && (num2 <= 99)) ? true : false;
if ((!isNum1TwoDigits) || (!isNum2TwoDigits))
return false;
while (num1 > 10) {
digit1 = num1 % 10;
while (num2 > 10) {
digit2 = num2 % 10;
if (digit2 == digit1)
return true;
}
num1 /= 10;
}
return false;

}

最佳答案

可能不是最有效的方法,但您可以创建一个 Set ,其中包含组成每个数字的数字,然后检查交集是否不为空。

public static Set<Integer> getDigits(int num)
{
Set<Integer> result = new TreeSet<Integer>();

if (num == 0)
result.add(0);
else
{
num = Math.abs(num);
while (num > 0)
{
result.add(num % 10);
num /= 10;
}
}

return (result);

} // getDigits

public static boolean hasSharedDigit(int num1, int num2)
{
Set<Integer> digits1 = getDigits(num1);
Set<Integer> digits2 = getDigits(num2);
digits1.retainAll(digits2);
return (!digits1.isEmpty());
}

关于java - 寻找两个数字中的共享数字时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57772303/

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