博客
关于我
华为机试:9. 提取不重复的整数
阅读量:382 次
发布时间:2019-03-05

本文共 1497 字,大约阅读时间需要 4 分钟。

1. 题目

2. 描述

题目描述

输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。

输入描述:

输入一个int型整数

输出描述:

按照从右向左的阅读顺序,返回一个不含重复数字的新的整数

示例1

输入

9876673

输出

37689

3. 实现方法

3.1 方法 1

3.1.1 思路

  1. 将数字转换为字符串;
  2. 然后初始化一个列表,从右向左遍历字符串,然后将 list 中不存在的元素加入,存在的元素则跳过;
  3. 将列表转换为字符串;
  4. 将字符串转换为整形并最终返回;

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
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); }}

转载地址:http://gsjwz.baihongyu.com/

你可能感兴趣的文章
mysql中kill掉所有锁表的进程
查看>>
mysql中like % %模糊查询
查看>>
MySql中mvcc学习记录
查看>>
mysql中null和空字符串的区别与问题!
查看>>