1. 题目
9. 提取不重复的整数
2. 描述
题目描述
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
输入描述:
输入一个int型整数
输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
示例1
输入
9876673
输出
37689
3. 实现方法
3.1 方法 1
3.1.1 思路
将数字转换为字符串;
然后初始化一个列表,从右向左遍历字符串,然后将 list 中不存在的元素加入,存在的元素则跳过;
将列表转换为字符串;
将字符串转换为整形并最终返回;
3.1.2 实现
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); } }