题解 | #提取不重复的整数#
提取不重复的整数
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();
}
}