博客
关于我
华为机试: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 创建表,不能包含关键字values 以及 表id自增问题
查看>>
mysql 删除日志文件详解
查看>>
mysql 判断表字段是否存在,然后修改
查看>>
mysql 协议的退出命令包及解析
查看>>
mysql 取表中分组之后最新一条数据 分组最新数据 分组取最新数据 分组数据 获取每个分类的最新数据
查看>>
mysql 多个表关联查询查询时间长的问题
查看>>
mySQL 多个表求多个count
查看>>
mysql 多字段删除重复数据,保留最小id数据
查看>>
MySQL 多表联合查询:UNION 和 JOIN 分析
查看>>
MySQL 大数据量快速插入方法和语句优化
查看>>
mysql 如何给SQL添加索引
查看>>
mysql 字段区分大小写
查看>>
mysql 字段合并问题(group_concat)
查看>>
mysql 字段类型类型
查看>>
MySQL 字符串截取函数,字段截取,字符串截取
查看>>
MySQL 存储引擎
查看>>
mysql 存储过程 注入_mysql 视图 事务 存储过程 SQL注入
查看>>
MySQL 存储过程参数:in、out、inout
查看>>
mysql 存储过程每隔一段时间执行一次
查看>>
mysql 存在update不存在insert
查看>>