博客
关于我
华为机试: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-事务阻塞
查看>>
Mysql-存储引擎
查看>>
mysql-开启慢查询&所有操作记录日志
查看>>
MySQL-数据目录
查看>>
MySQL-数据页的结构
查看>>
MySQL-架构篇
查看>>
MySQL-索引的分类(聚簇索引、二级索引、联合索引)
查看>>
Mysql-触发器及创建触发器失败原因
查看>>
MySQL-连接
查看>>
mysql-递归查询(二)
查看>>
MySQL5.1安装
查看>>
mysql5.5和5.6版本间的坑
查看>>
mysql5.5最简安装教程
查看>>
mysql5.6 TIME,DATETIME,TIMESTAMP
查看>>
mysql5.6.21重置数据库的root密码
查看>>
Mysql5.6主从复制-基于binlog
查看>>
MySQL5.6忘记root密码(win平台)
查看>>
MySQL5.6的Linux安装shell脚本之二进制安装(一)
查看>>
MySQL5.6的zip包安装教程
查看>>
mysql5.7 for windows_MySQL 5.7 for Windows 解压缩版配置安装
查看>>