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

提取不重复的整数

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

思路挺简单的,倒序其实就是模10取余,但是要求去重,所以需要引入hash,写的时候第一反应用HashMap实现了,但是其实HashSet就够了,反正能通过,就懒得优化了;


import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            int n=sc.nextInt();
            if(n==0){
                System.out.println(0);
            }else{
                //没必要非得用Map或者Set,只要能去重就行
                
                Map<Integer,Integer> myMap=new HashMap<Integer,Integer>();
                int res=0;
               //因为是int型,所以n如果只剩下一位,n/10会=0
                while(n>0){
                    //l表示n当前的末位
                    int l=n%10;
                    //判断l是否已经出现过
                    if(!myMap.containsKey(l)){
                        myMap.put(l,1);
                        //这一步就是实现倒序
                        res=res*10+l;
                    }
                    n=n/10;
                }  
                System.out.println(res);
            }
        }
        sc.close();
    }   
}
全部评论

相关推荐

挣K存W养DOG:他真的很中意你,为什么不回他
点赞 评论 收藏
分享
10-09 09:39
门头沟学院 C++
HHHHaos:这也太虚了,工资就一半是真的
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务