gpt4 book ai didi

java - 打印从 1 到 10^n 的所有具有唯一数字的整数

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:53:36 25 4
gpt4 key购买 nike

我有一个打印唯一数字的工作示例(即 123 有唯一数字,但 11 没有)

下面是代码

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter any number : ");
int n = Integer.parseInt(br.readLine());
double val = Math.pow(10, n);
List<Integer> list = new ArrayList<>();
for(int k=1;k<=val;k++){
String s = Integer.toString(k);
if(s.length() == 1){
list.add(k);
} else{
int l = s.length();
int flag = 0;
for (int i = 0; i < l - 1; i++) {
for (int j = i + 1; j < l; j++) {
if (s.charAt(i) == s.charAt(j)) {
flag = 1;
break;
}
}
} if(flag == 0){
list.add(k);
}
}
}
System.out.println(list);

如何使用java8高效的编写上面的代码?

最佳答案

可以改写为:

List<Integer> list = IntStream.range(1, (int) val + 1)
.filter(
i -> Integer.toString(i).chars().distinct().count() == Integer.toString(i).length()
)
.boxed()
.collect(Collectors.toList());

关于java - 打印从 1 到 10^n 的所有具有唯一数字的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39545609/

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