描述
输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
保证输入的整数最后一位不是 0 。
数据范围: 1 <= n <= 10^8
输入描述:
输入一个int型整数
输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
分析:无序不重复,set集合。但是set集合对Integer自然升序排序,所以不能用迭代器遍历set集合
Set<Integer> set = new HashSet<>();
Scanner sc = new Scanner(System.in);
String str = sc.next();
for(int i = str.length()-1 ; i>=0;i--){
if(set.add(Integer.parseInt(String.valueOf(str.charAt(i))))){
System.out.print(Integer.parseInt(String.valueOf(str.charAt(i))));
}
}
/*Iterator iterator = set.iterator();
while(iterator.hasNext()){
System.out.print(iterator.next());
}*/
还可以用StringBuilder接收控制台的数值,然后调用reverse方法,将字符串反序,然后遍历,索引为0时一定没有重复,如果后面跟前面相同,那么就跳过,反之输出。
Scanner sc = new Scanner(System.in);
StringBuilder str = new StringBuilder();
String s = str.append(sc.nextInt()).reverse().toString();
String res="";
for(int i = 0 ;i<s.length();i++){
if(!res.contains(String.valueOf(s.charAt(i)))){
res+=s.charAt(i);
}
}
System.out.println(res);