题解 | #字符个数统计#

字符个数统计

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

2、位图BitSet判断存在性

import java.util.BitSet;
import java.util.Scanner;


// 1、in.next()和in.nextLine()之间的区别
// next(): 这个函数会扫描从有效字符起到空格,Tab,回车等结束字符之间的内容并作为String返回。
// nextLine(): ;这个函数会直接输出你输入的内容,即使你什么都没输入直接回车他也会输出。
// next() 什么都不输入直接敲回车不会返回,而nextLine()即使不输入东西直接敲回车也会返回.

// 2、BitSet是什么,包含内容是什么
// Java 中 BitSet 就是“位图”数据结构,根据“位图”的语义,数据的存在性可以使用 bit 位上的1或0来表示;一个 bit 具有2个值:0和1,正好可以用来表示 false 和 true。
//通过 BitSet 来检测一个数字是否存在

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        //0~127总共有128个字符。字需要用128位
        BitSet bitSet = new BitSet(128);
        for (char c : str.toCharArray()) {
            if (!bitSet.get(c)) {
                bitSet.set(c);
            }
        }
        System.out.println(bitSet.cardinality());
        // System.out.println(bitSet.size()); //128 实际大小
        // System.out.println(bitSet.length()); //逻辑大小  BitSet中最高设置位的 BitSet加1 c--99 + 1 == 100 
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务