题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。 输入描述: 输入一个int型整数 输出描述: 按照从右向左的阅读顺序,返回一个不含重复数字的新的整数 示例1 输入 9876673 输出 37689
list
中不存在的元素加入,存在的元素则跳过;import java.util.*;
/**
* @author : cunyu
* @version : 1.0
* @className : Nine
* @date : 2020/8/10 23:14
* @description : 9. 提取不重复的整数
*/
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (input.hasNext()) {
int num = input.nextInt();
System.out.println(newNumber(num));
}
}
/**
* @description 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
* @param number 输入的整形数
* @return
* @date 2020/8/10 23:37
* @author cunyu1943
* @version 1.0
*/
public static int newNumber(int number) {
// 将数字转换为字符串
String str = String.valueOf(number);
List<Character> list = new ArrayList<>();
// 从右向左遍历字符串,如果 list 已经存在该元素,则跳过,如果 list 中不含该元素,则加入 list
for (int i = str.length() - 1; i >= 0; i--) {
// 含有该元素,跳过
if (list.contains(str.charAt(i))) {
continue;
} else {
// 不含该元素,加入
list.add(str.charAt(i));
}
}
// 将列表转换为字符串,然后将字符串转换为 int 返回即可
String ans = "";
for (Character cha : list
) {
ans = ans + cha;
}
return Integer.parseInt(ans);
}
}