Java题解 | HJ9 #提取不重复的整数#
提取不重复的整数
https://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1
描述
输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
保证输入的整数最后一位不是 0 。
数据范围: 1≤n≤10
输入描述:输入一个int型整数
输出描述:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
解法
此题考点:逆序、去重、排序。因此采用Set是最为合适的。
/*
* Copyright (c) waylau.com, 2022. All rights reserved.
*/
package com.waylau.nowcoder.exam.oj.huawei;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
/**
* HJ9 提取不重复的整数.
* 描述:输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
* 保证输入的整数最后一位不是 0 。
* 数据范围: 1≤n≤10
* 输入描述:输入一个int型整数
* 输出描述:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
*
* @author <a href="https://waylau.com">Way Lau</a>
* @since 2022-08-07
*/
public class HJ9ExtractsNonRepeatingIntegers {
public static void main(String[] args) {
// 输入一行,代表要计算值
Scanner sc = new Scanner(System.in);
String in = sc.nextLine();
// 构造一个Set结构用于判重
Set<Character> set = new HashSet<>();
StringBuilder result = new StringBuilder();
// 逆序遍历
for (int i = in.length() - 1; i >= 0; i--) {
char c = in.charAt(i);
// 判重,不重复的就记录下来
if (!set.contains(c)) {
set.add(c);
result.append(c);
}
}
// 按顺序输出
System.out.println(result.toString());
// 关闭资源
sc.close();
}
}
运行程序输出结果如下:
9876673
37689
参考引用
- 本系列归档至https://github.com/waylau/nowcoder-exam-oj
- 《Java 数据结构及算法实战》:https://github.com/waylau/java-data-structures-and-algorithms-in-action
- 《数据结构和算法基础(Java 语言实现)》(柳伟卫著,北京大学出版社出版):https://item.jd.com/13014179.html
#华为机考#


查看22道真题和解析