题解 | #提取不重复的整数#

提取不重复的整数

http://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1

使用HashSet的不重复性来判断

  1. 求解每一位数字,然后注意添加到HashSet中,如果能添加进去,则说明是没有重复的,可以输出答案
  2. 如果无法加入成功,则说明是已经重复了,可以到下一位

import java.util.*;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            // 使用HashSet来判断是否是不重复的
            HashSet<Integer> hs = new HashSet<>();
            int target = sc.nextInt();// 获取代求解的值
            while(target != 0){ // 求解每位上面的整数
                int temp = target % 10;
                if(hs.add(temp)) // 如果能加入,就是说明没有重复
                    System.out.print(temp);
                target /= 10;// 除10能去掉最右边的数字
            }
            System.out.println();
        }
    }
}
全部评论
想不通为什么要除以10
点赞 回复 分享
发布于 2022-06-25 13:30
代码有问题不能用hashSet要用linkedHashSet
6 回复 分享
发布于 2022-03-25 11:36
讲道理你这样输出来也不是一个整数啊
5 回复 分享
发布于 2022-03-29 17:24
是不是就不能保证最后一位输入的值为0
4 回复 分享
发布于 2022-03-22 18:49
hashSet会进行排序的
2 回复 分享
发布于 2022-06-18 00:46
超时了
1 回复 分享
发布于 2022-06-12 21:36
这个是会一直循环吗?
点赞 回复 分享
发布于 2025-07-03 16:16 辽宁
直接用map利用map key的唯一性也行
点赞 回复 分享
发布于 2023-07-02 21:56 广东
如果需要从小到达输出TreeSet是否可以,为啥我的输出没有从小到大呢?
点赞 回复 分享
发布于 2022-11-23 15:53 广东
hashSet的顺序问题???能够保证一定和输入的一致嘛?我记得set是无序的
点赞 回复 分享
发布于 2022-07-14 15:37
开局获取了扫描器,但是扫描器没有获取数字。少一句scanner.nextInt()。var
点赞 回复 分享
发布于 2022-05-24 07:08
System.out.println(); 这个好像是多余的呀?
点赞 回复 分享
发布于 2022-04-03 20:23
额,不是输入一个数吗
点赞 回复 分享
发布于 2022-04-01 10:47
学习了。我逐个取出子串放到LinkedHashSet,再拿出来拼接转换,写了一大堆效率还低,好傻呀……
点赞 回复 分享
发布于 2022-03-30 18:06

相关推荐

评论
131
11
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务