题解 - 暴力、枚举、模拟

01 - 单词分析

题目

给了一个单词,找到出现最多的字母和这个字母出现的次数。

样例

longlonglongistoolong

o
6

思路

数组下标具有实际意义:
下标代表字母,元素代表该字母出现的次数
常用ASCII码:A:65 —— a:97 —— 0:48

代码

public static void main(String[] args) {
   
	Scanner sc = new Scanner(System.in);
	
	//输入
	String s = sc.next();
	//定义一个数组,下标对应的26个字母,元素代表该字母出现次数
	int[] z = new int[26];
	
	//定义两个变量保存最大值及下标(字母)
	int max = 0, k = 0;

	//将单词的每一个字符取出来
	for (int i = 0; i < s.length(); i++) {
   
		char c = s.charAt(i);
		//每取一个字母,数组对应下标+1
		z[c-'a']++;
	}

	//找到最大值及其下标(字母)
	for (int i = 0; i < z.length; i++) {
   
		if (z[i] > max) {
   
			max = z[i];
			k = i;
		}
	}
	
	//整形转化为字符并输出
	System.out.println((char) (k + 97) + "\n" + z[k]);
	sc.close();
}

02 - 四平方和

题目

对于一个给定的正整数,可能存在多种平方和的表示法。比如:
N = a2+b2+c2+d2
7 = 12+12+12+22
并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法。

样例

12

0 2 2 2

思路

暴力!暴力!暴力破解
枚举所有情况,找到限制条件(N = a2+b2+c2+d2)
最后一定要优化(遍历次数之类的)

代码

public static void main(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值