本文共 1497 字,大约阅读时间需要 4 分钟。
题目描述
输入一个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); Listlist = 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); }}
转载地址:http://gsjwz.baihongyu.com/