华为机试:9. 提取不重复的整数

简介: 华为机试:9. 提取不重复的整数

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);
    }
}
目录
相关文章
|
3月前
|
存储 C语言
牛客网刷题总结(1.有序序列判断,2.获得月份天数,3.矩阵相等判定,4.矩阵转换,5.井字棋判断输赢,6.递归进行进制转化)
牛客网刷题总结(1.有序序列判断,2.获得月份天数,3.矩阵相等判定,4.矩阵转换,5.井字棋判断输赢,6.递归进行进制转化)
39 0
|
6月前
【C刷题】矩阵相等判断与序列中删除指定的数字(下)
【C刷题】矩阵相等判断与序列中删除指定的数字(下)
|
6月前
|
C语言
【C刷题】矩阵相等判断与序列中删除指定的数字(上)
【C刷题】矩阵相等判断与序列中删除指定的数字(上)
|
6月前
华为机试HJ9:提取不重复的整数
华为机试HJ9:提取不重复的整数
|
8月前
|
算法
LeetCode-41 缺失的第一个正整数
LeetCode-41 缺失的第一个正整数
|
算法 Go C++
leetcode-2321. 拼接数组的最大分数(差分+枚举)
但其实是在找两个数组之间[Left:Right]区间最大差值,差值我们自然而然的就可以想到差分,但是我们这里求的差分数组并不是两个数组前后元素的差值,而是两个数组同一下标的元素差值,这样我们只要找这段差分区间和的最大值就行了
49 0
leetcode-2321. 拼接数组的最大分数(差分+枚举)
力扣刷题记录——459.重复的字符串、461. 汉明距离、476. 数字的补数
力扣刷题记录——459.重复的字符串、461. 汉明距离、476. 数字的补数
111 0
力扣刷题记录——459.重复的字符串、461. 汉明距离、476. 数字的补数
C/C++编程题之提取不重复的整数
C/C++编程题之提取不重复的整数
|
Java 测试技术
Java数字分类给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3
Java数字分类给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3
157 0
Java数字分类给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3
牛客网——序列中整数去重
牛客网——序列中整数去重
162 0