蓝桥杯真题打卡|day16

Q1:英文字母

题目:

思路:

A的ASCII码是65,那么我要输入1,就输出A,我们直接加64即可,然后把int转成char

代码:

public class Question1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt() + 64;
        char x = (char)n;
        System.out.println(x);
    }
}

Q2:单词分析

题目:

思路:

a的ASCII码是97,z的是122,为了方便我们之间创建一个长度123的int数组,其中strs[97]-strs[122],分别保存a到z出现的次数。写一个getMaxIndex()函数,获取出现最多字母对应的ASCII码,因为这里如果有两个相同出现次数最多,就输出字典序小的,那么在判断谁更大的时候,要注意,代码上面注释了。最后输出即可。

代码:

import java.util.Scanner;

public class Question2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        int[] strs = new int[123];
        for (int i = 0; i < str.length(); i++) {
            char x = str.charAt(i);
            strs[x]++;
        }
        int maxIndex = getMaxIndex(strs);
        System.out.println((char) maxIndex);
        System.out.println(strs[maxIndex]);
    }

    public static int getMaxIndex(int[] strs ){
        int maxIndex = 97;
        for (int i = 97; i <= 122 ; i++) {
           if(strs[i] > strs[maxIndex]){//不要写>= ,因为要输出字典序小的
               maxIndex = i;
           }
        }
        return maxIndex;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值