SDUT-1525 字符统计2(JAVA*)

本文介绍了一个简单的字符统计算法,该算法能够从输入的英文句子中找出出现次数最多的字符及其出现次数,并通过示例代码展示了如何使用Java实现这一功能。特别地,当存在多个字符出现次数相同时,算法会输出ASCII码最小的那个字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符统计2

Time Limit: 1000 ms  Memory Limit: 65536 KiB
Problem Description

输入英文句子,输出该句子中除了空格外出现次数最多的字符及其出现的次数。

Input

输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。

Output

逐行输出每个句子中出现次数最多的字符及其出现的次数(如果有多个字符的次数相同,只输出ASCII码最小的字符)。

Sample Input
I am a student
a good programming problem
ABCD abcd ABCD abcd
Sample Output
a 2
o 4
A 2
Hint
 
Source

java数组初始化方法:java.util.Arrays.fill(数组名,数值)

参考:https://blog.youkuaiyun.com/alenc/article/details/1500113

import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		char c[] = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q',
				'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
				'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
		while (input.hasNext()) {
			char arr[] = input.nextLine().toCharArray();
			int num[] = new int[52];
			Arrays.fill(num, 0);//Arrays.fill() 方法只适合于把数组用同一个值初始化。
			int sum = 0, t = 0;
			for (int i = 0; i < arr.length; i++) {
				for (int j = 0; j < 52; j++) {
					if (c[j] == arr[i]) {
						num[j]++;
						if (num[j] > sum) {
							sum = num[j];
							t = j;
						}
						if (num[j] == sum) {
							if (c[t] > c[j])
								t = j;
						}
						break;
					}
				}
			}
			System.out.printf("%c %d\n", c[t], sum);
		}
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值