面试题:字符串中出现次数最多的字符以及出现的次数

java版:

public static void test() {
        Scanner scanner = new Scanner(System.in);
        String scannerStr = scanner.nextLine().trim();
        scanner.close();
        int maxLength = 0;
        StringJoiner maxStr = new StringJoiner("|");
        while (scannerStr.length() > 0) {
            // 截取第一个字符
            String firstChar = scannerStr.substring(0,1);
            int length = scannerStr.length();
            // 替换所有第一个字符
            scannerStr = scannerStr.replaceAll(firstChar, "");
            // 判断:总长度 - 去掉第一个字符后的长度 >= 已知的最大长度
            if (length - scannerStr.length() >= maxLength) {
                // 计算第一个字符出现的次数
                maxLength = length - scannerStr.length();
                // 记录出现最多的字符
                maxStr.add(firstChar);
            }
        }
        System.out.println("出现次数最多的字符是:" + maxStr.toString() + ",出现的次数:" + maxLength);
    }

js版本:

function test(){
    var str = "aaabbbcc";
	var maxLength = 0;
	var maxStr = "";
    while(str.length > 0){
        // 获取str长度
        var strLength = str.length;
        // 截取第一个字符
        var strSub = str.substring(0,1);
        // 将第一个字符全部替换
        str = str.replaceAll(strSub,"");
        // 判断总长度 - 截取后的总长度,是否大于已选出的最大长度
        if(strLength - str.length >= maxLength){
            // 计算字符出现次数
            maxLength = strLength - str.length;
            // 记录出现的字符
            maxStr = maxStr +  "|" + strSub;
        }
    }
    console.log(maxStr,maxLength)
}

你可能感兴趣的:(算法,字符串中出现次数最多,数据结构,js,java)