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

参考引用

#华为机考#
全部评论
用了set还需要判重吗
点赞 回复 分享
发布于 2024-01-11 08:20 广东

相关推荐

07-07 14:30
复旦大学 Java
遇到这种人我也不知道说啥了
无能的丈夫:但我觉得这个hr语气没什么问题啊(没有恶意
点赞 评论 收藏
分享
点赞 评论 收藏
分享
零OFFER战士:另一个版本查看图片
点赞 评论 收藏
分享
评论
1
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务