博客
关于我
华为机试: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/

你可能感兴趣的文章
MTCNN 人脸检测
查看>>
MyEcplise中SpringBoot怎样定制启动banner?
查看>>
MyPython
查看>>
MTD技术介绍
查看>>
MySQL
查看>>
MySQL
查看>>
mysql
查看>>
MTK Android 如何获取系统权限
查看>>
MySQL - 4种基本索引、聚簇索引和非聚索引、索引失效情况、SQL 优化
查看>>
MySQL - ERROR 1406
查看>>
mysql - 视图
查看>>
MySQL - 解读MySQL事务与锁机制
查看>>
MTTR、MTBF、MTTF的大白话理解
查看>>
mt_rand
查看>>
mysql /*! 50100 ... */ 条件编译
查看>>
mudbox卸载/完美解决安装失败/如何彻底卸载清除干净mudbox各种残留注册表和文件的方法...
查看>>
mysql 1264_关于mysql 出现 1264 Out of range value for column 错误的解决办法
查看>>
mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
查看>>
mysql 5.6 修改端口_mysql5.6.24怎么修改端口号
查看>>
MySQL 8.0 恢复孤立文件每表ibd文件
查看>>