华为机试牛客刷题之HJ10 字符个数统计

HJ10 字符个数统计

描述
对于给定的字符串,统计其中的 ASCII 在 0 到 127 范围内的不同字符的个数。

备注:受限于输入,本题实际输入字符集为 ASCII 码在 33 到 126 范围内的可见字符。您可以参阅下表获得其详细信息(您可能关注的内容是,这其中不包含空格、换行)。
在这里插入图片描述

输入描述:
在一行上输入一个长度 1≦length(s)≦500 的字符串 s ,代表给定的字符串。

输出描述:
在一行上输出一个整数,代表给定字符串中 ASCII 在 0 到 127 范围内的不同字符的个数。

示例1

输入:[@A8aA].0
输出:8

思路是通过遍历字符串的每个字符,并将其添加到HashSet中,集合会自动处理重复字符。

import java.util.Scanner;
import java.util.Set;
import java.util.HashSet;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String str = in.nextLine();
            Set<Character> result = new HashSet<Character>();
            for(char ch : str.toCharArray()){
                result.add(ch);
            }
            System.out.println(result.size());
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值