Java题解 | HJ10 #字符个数统计#

字符个数统计

https://www.nowcoder.com/practice/eb94f6a5b2ba49c6ac72d40b5ce95f50

描述

编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次。例如,对于字符串 abaca 而言,有 abc 三种不同的字符,因此输出 3

数据范围: 1≤n≤500

输入描述:输入一行没有空格的字符串。

输出描述:输出 输入字符串 中范围在(0~127,包括0127)字符的种数。

解法

考点是去重,因此可以采用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 提取不重复的整数. 
 * 描述:编写一个函数,计算字符串中含有的不同字符的个数。
 * 字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),
 * 换行表示结束符,不算在字符里。不在范围内的不作统计。
 * 多个相同的字符只计算一次。
 * 例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3 。
 * 数据范围: 1≤n≤500 
 * 输入描述:输入一行没有空格的字符串。
 * 输出描述:输出 输入字符串 中范围在(0~127,包括0和127)字符的种数。
 *
 * @author <a href="https://waylau.com">Way Lau</a>
 * @since 2022-08-07
 */
public class HJ010CharacterCountStatistics {

	public static void main(String[] args) {
		// 输入一行,代表要计算值
		Scanner sc = new Scanner(System.in);
		String in = sc.nextLine();

		// 构造一个Set结构用于去重
		Set<Character> set = new HashSet<>();

		// 遍历
		for (int i = 0; i < in.length(); i++) {
			char c = in.charAt(i);

			// 去重
			set.add(c);
		}

		// 输出
		System.out.println(set.size());

		// 关闭资源
		sc.close();
	}
}



运行程序输出结果如下:

abc

3

参考引用

#华为机考#
全部评论

相关推荐

头像
03-18 09:09
Java
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务