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

提取不重复的整数

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

解题思路:
既然是从右向左读取每一位上的数,可以采用取模和取商来获取“当前个位”上的数字和更新数字。每次将输入结果num % 10就可以获得当前num个位上的数字,实现从右向左;然后更新num = num / 10,这样下次取得“个位”,实际是之前的十位;依次类推,直到num=0,表示将所有位的数字都取出了。
将数字放到Set集合当中,这样可以避免重复,也是降重经常考虑的方式。

import java.util.Scanner;
import java.util.Set;
import java.util.HashSet;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int num = scan.nextInt();
        Set<Integer> set = new HashSet<>();
        int count = 0;
        while(num != 0) {
            int last = num % 10;
            if(!set.contains(last)) {
                set.add(last);
                count = count * 10 + last;
            }
            num = num / 10;
        }
        System.out.println(count);
    }
}


全部评论

相关推荐

Noob1024:一笔传三代,人走笔还在
点赞 评论 收藏
分享
09-27 18:15
门头沟学院 C++
在努力的小牛:来告诉你 录用评估挂就是同期好几个候选人,部门负责人选了其他人。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务