给定一字符串,求出现次数最多的那个字符及次数,如次数最多的字符有多个则都输出

题目:

给定一字符串,求出现次数最多的那个字符及次数,如次数最多的字符有多个则都输出

思路:

1.首先读取字符串中的第一个字符,将字符串中与第一个字符相同的字符全部删除掉,然后通过计算删除前后字符串的长度差来确定该字符在字符串中出现的次数,最终比较出出现最多次的字符
2.设置一个list集合存储出现次数最多的字符,max_num记录出现最多的次数
(1)如果删除前后的字符串长度差等于前一次max_num,则添加到list
(2)如果删除前后的字符串长度差大于前一次max_num,清空list,更新max_str,list中添加该字符

代码:

import java.util.LinkedList;
import java.util.Scanner;

public class Cishu {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        findmaxstr(line);
        scanner.close();
    }
    public static void findmaxstr(String str){
        int max_num = 0;
        String max_str = "";
        LinkedList<String> list = new LinkedList<>();
        while (str.length() > 0){
            String first = str.substring(0, 1);
            int length = str.length();
            str = str.replaceAll(first,"");
            if (max_num == length-str.length()){
                max_num = length-str.length();
                max_str = first;
                list.add(max_str);
            }
            if (max_num < length-str.length()){
                list.clear();
                max_num = length-str.length();
                max_str = first;
                list.add(max_str);
            }
        }
        for (String c:list) {
            System.out.println(c+":"+max_num);
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值