【发布时间】:2020-09-20 23:28:24
【问题描述】:
给定一个数字 N,例如取 1091,这里的位数是 4,但唯一位数是 3,即 1、0 和 9 是唯一的(因为 1 是重复的)。
我尝试将数字分解为单个数字并将其添加到 ArrayList 中,然后将其转换为数组。然后,每次我在数组中得到一个唯一数字时,遍历数组并将唯一数字的计数增加 1,但我没有得到所需的输出。请有人帮助在 Java 中查找给定数字中的唯一数字计数。
import java.util.ArrayList;
public class UniqueDigits {
static int uniqueDigitCount(int n) {
ArrayList<Integer> ar = new ArrayList<>();
int temp = n;
int count = 1;
do {
ar.add(temp % 10);
temp /= 10;
}
while (temp > 0);
Integer[] arr = new Integer[ar.size()];
arr = ar.toArray(arr);
if (arr.length > 0) {
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i] != arr[i + 1]) {
count++;
}
}
return count;
} else {
return 0;
}
}
public static void main(String[] args) {
System.out.println(uniqueDigitCount(1091));
}
}
【问题讨论】:
-
请贴出代码。
-
您可以将它们添加到
HashSet中,而不是将数字添加到ArrayList中,它的大小实际上会为您提供唯一数字的数量。 -
@akuzminykh 是的,我会发布我的代码
-
@KonstantinYovkov 我会试试的
-
@KonstantinYovkov 谢谢,使用 HashSet 可以完美地找到 uniqueDigitCount。我在答案部分添加代码。
标签: java unique counting digits